Κυριακή 3 Απριλίου 2016

Lambda εργασίες με συναρτήσεις!

Η 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

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

You can feel free to write any suggestion, or idea on the subject.