Как объединить две строки (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
.