Napisałem kilka kodu w Haskell, aby utworzyć indeks tekstu. Górny funkcja wygląda tak:Funkcja Haskell typu: IO String-> String
index :: String -> [(String, [Integer])]
index a = [...]
Teraz chcę dać tę funkcję String odczytu z pliku:
index readFile "input.txt"
które nie będą działać, ponieważ readfile jest typu filePath -> IO String .
Nie można oczekiwać Typ dopasowania 'String' przeciwko wywnioskować typu 'IO String'
widzę ten błąd, ale nie mogę znaleźć żadnej funkcji z typu:
IO String -> String
Sądzę, że kluczem do sukcesu jest gdzieś pod kilkoma Monadami, ale nie mogłem znaleźć sposobu na rozwiązanie mojego problemu.
Spójrz tutaj dobrego tutoriala monady: http://blog.sigfpe.com/2006/ 08/you-could-have-invented-monads-and.html –
Inne dobre zasoby można znaleźć tutaj w SO. Po prostu spójrz na sekcję Powiązane, bezpośrednio na ekranie. –