Η bb() παρακάτω είναι κανονική συνάρτηση που δίνει lambda
Κάθε lambda είναι ένα αντικείμενο, που έχει μια λίστα δικών του μεταβλητών οι οποίες τρέχουν σε οποιοδήποτε περιβάλλον και αν βρεθεί η lambda. Αν θέλουμε μπορούμε να περάσουμε μια
a=lambda -> 34
Print a() \\33
b= lambda x=a -> x()*100
Print b() \\ 3400
def bb(b)=lambda b -> b()*100
c=bb(a)
Print c() \\ 3400
k=100
d=lambda k->{k+=2 :=k}
Print d(),d() \\ 102, 104
f=lambda k->{k+=2 :=k}
Print f(),f() \\ 102, 104
r=lambda k->lambda k->{k+=2:=k}
m=r()
Print m(),m() \\ 102, 104
rr=r \\ copy r to rr
p=rr() \\
Print p(),p() \\ 102, 104
klm=p \\ copy p to klm
Print klm() \\ 106
Print klm(),p() \\ 108, 106
Module Some {
read &v()
Print v(), v() \\110, 112 - 2nd time 114, 116
}
\\ we pass it like a standard function
Some &Klm()
Some &Klm()
Module Some2 {
Read klm2
Print klm2(), klm2() \\118, 120
}
\\ by value pass
Some2 Klm
\\ so we have the same here
Print klm(), klm() \\ 118, 120
Module Some3 {
Read pointer$
print function(pointer$), function(pointer$) \122, 124
}
Some3 lazy$(klm())
Print klm(), klm() \\ 126, 128
Κάθε lambda είναι ένα αντικείμενο, που έχει μια λίστα δικών του μεταβλητών οι οποίες τρέχουν σε οποιοδήποτε περιβάλλον και αν βρεθεί η lambda. Αν θέλουμε μπορούμε να περάσουμε μια
a=lambda -> 34
Print a() \\33
b= lambda x=a -> x()*100
Print b() \\ 3400
def bb(b)=lambda b -> b()*100
c=bb(a)
Print c() \\ 3400
k=100
d=lambda k->{k+=2 :=k}
Print d(),d() \\ 102, 104
f=lambda k->{k+=2 :=k}
Print f(),f() \\ 102, 104
r=lambda k->lambda k->{k+=2:=k}
m=r()
Print m(),m() \\ 102, 104
rr=r \\ copy r to rr
p=rr() \\
Print p(),p() \\ 102, 104
klm=p \\ copy p to klm
Print klm() \\ 106
Print klm(),p() \\ 108, 106
Module Some {
read &v()
Print v(), v() \\110, 112 - 2nd time 114, 116
}
\\ we pass it like a standard function
Some &Klm()
Some &Klm()
Module Some2 {
Read klm2
Print klm2(), klm2() \\118, 120
}
\\ by value pass
Some2 Klm
\\ so we have the same here
Print klm(), klm() \\ 118, 120
Module Some3 {
Read pointer$
print function(pointer$), function(pointer$) \122, 124
}
Some3 lazy$(klm())
Print klm(), klm() \\ 126, 128
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου
You can feel free to write any suggestion, or idea on the subject.