Вот мой код:Haskell Ожидаемый тип: IO Char Фактический тип: String
mingle :: String -> String -> String
mingle (a:as) (b:bs) = ([a] ++ [b]) ++ mingle as bs
mingle [] [] = []
main = putStrLn "Enter 1st String:"
>> getLine
>>= \a -> read a >> putStrLn "Enter 2nd String:"
>> getLine
>>= \b -> read b >>= mingle a b
Ошибка:
MingleStrings.hs:10:45:
Couldn't match type ‘[]’ with ‘IO’
Expected type: IO Char
Actual type: String
In the second argument of ‘(>>)’, namely ‘mingle a b’
In the expression: read b >> mingle a b
Я был под впечатлением, что читать будет в состоянии превратить тип IO к стандарт haskell type. Ни одна из других сообщений о работе с IO, казалось, не помогла.
Итак, я прочитал, что основной тип IO или что-то в этом роде, и поэтому он должен вернуть что-то из IO? Мне дали, что длина строк будет одинаковой. – jchen114
@ jchen114 Да 'main' должен возвращать что-то типа' IO'. – Sibi