FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / PM Praktische Informatik

Closures

Closures 2008-03-25 19:28
Anonymer User
Könnte mir möglicherweise jemand verständlich beschreiben was genau Closures sind (se3 funktional) ? Ich blick die irgendwie nicht..

RE: Closures 2008-03-25 19:40
Fred
Soweit ich weiß ist eine Closure ein Stück Code, das sich auf Variablen der Umgebung beziehen kann. Dieses Stück Code kann man als Wert behandeln und so z.B. in Variablen speichern oder an Methoden übergeben.

So sieht das zumindest in der imperativen Welt aus.

RE: Closures 2008-03-26 00:36
Hannes
closures konservieren ihren definitionskontext.

beispiel in python:

def generate_adder(x): f = lambda y: x+y return f adder = generate_adder(10) adder2 = generate_adder(30) print adder(5) # ausgabe: 15 print adder2(5) # ausgabe: 35
generate_adder gibt eine funktion zurück, die das x aus dem aufruf merkt.

edit: das gleiche in scheme:
(define (generate_adder x) (lambda (y) (+ x y))) (define adder (generate_adder 10)) (define adder2 (generate_adder 30)) (adder 5) ; -> 15 (adder2 5) ; -> 35

RE: Closures 2008-03-26 14:27
Anonymer User
danke, jetzt versteh ichs, glaube ich..