Как объединить две строки (IO) в Haskell?
Я знаю, это звучит очень просто, но мне не удалось объединить две строки в одну новую.
строка ввода-вывода " a " из записи gtk извлекается
a <- (entryGetText text_field)
цель состоит в том, чтобы сочетать его как:
newstring = "Text:" +a
есть идеи для этого? Спасибо!
3 ответов
С помощью конкатенации строк:
do a <- entryGetText text_field
let b = "Text:" ++ a
return b
просто:
do a <- entryGetText text_field
return $ "Text:" ++ a
вы также можете играть в игры:
("Text:" ++) <$> (entryGetText text_field)
тот самый момент, когда вы используете оператор присваивания x <- expr с expr :: m a и m одни монады, x - это не m a, а a. В вашем случае переменная a типа String, а не IO String, поэтому вы можете объединить его, как в чистом коде, например "hello world " ++ a.