Code: Alles auswählen
def closure():
container = [0]
def inc():
container[0] += 1
def get():
return container[0]
return inc, get
Code: Alles auswählen
def closure():
container = [0]
def inc():
container[0] += 1
def get():
return container[0]
return inc, get
Code: Alles auswählen
In [10]: inc, get = closure()
In [11]: inc.__closure__
Out[11]: (<cell at 0xb60d6224: list object at 0xb71ce20c>,)
In [12]: inc.__closure__[0].cell_contents
Out[12]: [0]
Das sind auch uneigentlich keine. Aber worauf willst du hinaus? Python ist bekanntermaßen keine rein funktionale Programmiersprache.fail hat geschrieben:Das sind also eigentlich keine puren funktionen mehr, da es beim mehrmaligen aufruf mit den gleichen parametern ein anderes resultat zurückgibt.
Weil Clojure nunmal ein funktionales Lisp ist ... SCNRfail hat geschrieben:@Darii man hört Clojures oft im zusammenhang mit funktionalen Sprachen
Hat auch Closures!cofi hat geschrieben:Weil Clojure nunmal ein funktionales Lisp ist ... SCNRfail hat geschrieben:@Darii man hört Clojures oft im zusammenhang mit funktionalen Sprachen