Ich versuche, einen Wert Maybe von einer Funktion zurückzugeben, die Do-Notation verwendet, aber ich kann nicht scheinen, um es zu arbeiten. Diese Funktion nimmt einen String (Der "Dateiname") und einen Pfad in ...Wie kann ich einen Maybe-Wert aus der Do-Notation in PureScript zurückgeben?
findIn :: String -> Path -> Maybe Path
findIn search start = do
file <- ls start
if ((filename file) == search)
then Just file
else Nothing
Wo ...
ls :: Path -> Array Path
filename :: Path -> String
Aber ich den Fehler halten suchen immer „Count nicht Typ Array entsprechen mit type Maybe ", also sieht es so aus, als ob der Compiler die do-Notation erwartet, um ein Array zurückzugeben. Wie würde ich einen möglichen Wert zurückgeben?
Ok, ich glaube, ich verstehe. Also muss die Notation ein Array zurückgeben, und alle Ausdrücke zielen darauf ab, auf diesen Arrays zu filtern und zu mappen. – Albtzrly
Ja, das stimmt. Wenn Sie ein 'Maybe' zurückgeben wollen, dann muss der' Do'-Block alles über 'Maybe' sein. Ich habe meine Antwort ein wenig aktualisiert. –
Vielen Dank für die Klärung. Diese Aussage darüber, im "Kontext von Maybe" und im "Kontext vieler möglicher Werte" zu stehen, macht Sinn. So habe ich noch nie darüber nachgedacht. – Albtzrly