6 Stimmen

Wie würde ich das Äquivalent von Prototype's Enumerator.detect in Perl mit der geringsten Menge an Code tun?

In letzter Zeit habe ich viel über funktionale Programmierung nachgedacht. Perl bietet eine ganze Reihe von Werkzeugen, um diesen Weg zu gehen, aber es gibt etwas, das ich noch nicht finden konnte.

Prototype hat die Funktion detect für Enumeratoren, die Beschreibungen sind einfach diese:

Enumerator.detect(iterator[, context]) -> firstElement | undefined
Finds the first element for which the iterator returns true.

Enumerator ist in diesem Fall eine beliebige Liste, während Iterator ein Verweis auf eine Funktion ist, die nacheinander auf jedes Element der Liste angewendet wird.

Ich suche so etwas für Situationen, in denen die Leistung wichtig ist, z. B. wenn das Anhalten beim Auffinden einer Übereinstimmung Zeit spart, indem der Rest der Liste ignoriert wird.

Ich bin auch auf der Suche nach einer Lösung, die nicht mit dem Laden eines zusätzlichen Moduls, so dass, wenn möglich, sollte es mit builtins nur getan werden. Und wenn möglich, sollte es so prägnant wie dies zum Beispiel sein:

my @result = map function @array;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X