Ich habe ein paar Schnipsel, die sich anfühlen, als würden sie das Gleiche tun, aber ich bin nicht ganz davon überzeugt, dass es ein verallgemeinertes Konstrukt gibt, um mit beiden umzugehen. An einer Stelle habe ich
%Vor%Dies könnte in etwa wie
aussehen %Vor%in einem anderen, ich habe das sehr ähnlich
%Vor%Dies würde stattdessen ungefähr wie
aussehen %Vor%Beide prüfen, ob ein Wert gemäß einem Prädikat korrekt ist, und wenn nicht, geben sie einen Standardwert zurück, der "leer" ist. Es gibt jedoch einen kleinen Unterschied - was bedeutet, dass die zweite Funktion als
umgeschrieben werden könnte %Vor% um sie ähnlicher zu machen, wobei die Verantwortung für das "Auspacken" des Maybe
auf das Prädikat übertragen wird. Mit dieser neuen Definition würden beide Funktionen unter
Also, meine Frage ist,
Ist diese bool x empty (p x)
in irgendeiner Form vorhanden, also muss ich diese Funktion nicht selbst implementieren? Das Problem mit dem Einfügen von bool x empty (p x)
ist, dass in meinem Fall sowohl p
als auch x
sind ziemlich lang.
Es gab zwei Vorschläge. Eine mit Monoid:
%Vor%Und ein anderer mit MonadPlus:
%Vor%Tags und Links haskell functional-programming