Thread Currying in Schleifen (18 answers)
Opened by flowdy at 2012-11-06 22:47

sirius
 2012-11-06 23:23
#163099 #163099
User since
2012-01-06
25 Artikel
BenutzerIn
[default_avatar]
Wenn ich Deinen Code richtig verstehe, dann überschreibst du @ret bei jedem Schleifendurchlauf mit dem Ergebnis von deiner anonymen Funktion. Also ist das Ergebnis der Funktion erst beim letzten Schleifendurchlauf relevant. Dann kannst du ja vorher immer false zurückliefern.

Wenn dem nicht so ist, dann kenne ich es bisher (Microsoft macht es z.B. so), dass der Fehlercode (aka dein continue) im Return steht und ein Ergebnis der Funktion im call by reference übergeben wird. (Also deine Variante 1 nur umgekehrt)

Und warum keine Exception? Ist das so ungeliebt. Es ist ja deswegen kein Fehler oder so etwas. Eine Exception tritt ganz normal auf, wenn die Fortführung des Codes an dieser Stelle (weil zumeist etwas - Datei, Variableninhalt - fehlt) nicht sinnvoll ist und zu einem safe place gesprungen werden soll.

Im Gegensatz zu der Exception-Variante finde ich deine Variante zwei abenteuerlich. Aber da fehlt mir die Erfahrung mit solchen anonymen Funktionen. Ich würde es gefühlsmäßig vermeiden, Variablen über Funktionsgrenzen (aka quasi-global) zu verwenden.


(Das sind nur Hinweise von jemandem, der schon länger programmiert, aber nicht in perl)

View full thread Currying in Schleifen