ich habe:Haskell: Monade Stack binden mit IO und []
stuff :: IO [String]
doThings :: String -> IO [()]
und ich möchte
stuff >>= doThings
aber meine Typen sind aus. Ich möchte im Wesentlichen eine aufgehobene Bindung machen, aber alles, was ich versuche, ist subtil falsch.
'do xs <- stuff; mapM_ doThings xs'? Was genau versuchst du zu tun? Auch: '[()]' ist ein ziemlich nutzloser Typ. Ist ein 'Int' nicht genug? Oder kannst du nicht einfach den Typ 'String -> IO()' haben? – Bakuriu
Danke! Ich habe '[()]' in '()' geändert und 'mapM_' verwendet, es hat super funktioniert! –
Sie können '[()]' beibehalten (vorausgesetzt, Sie haben einen Grund, dies zu wollen), indem Sie 'mapM' verwenden. Beachten Sie, dass das abschließende '_' in Haskell normalerweise" Ignoriere das Ergebnis (die Ergebnisse) "bedeutet. –