Подтвердить что ты не робот

Как конкатрировать две (IO) строки в Haskell?

Я знаю, что этот звук очень прост, но мне не удалось объединить две строки в новую.

Строка IO "a" из записи gtk выбирается

      a <- (entryGetText text_field)

Цель состоит в том, чтобы объединить его, как:

newstring = "Текст:" + a

Любые идеи для этого? Спасибо!

4b9b3361

Ответ 1

Использование конкатенации строк:

 do a <- entryGetText text_field
    let b = "Text:" ++ a
    return b

Проще говоря:

 do a <- entryGetText text_field
    return $ "Text:" ++ a

Вы также можете играть в игры:

 ("Text:" ++) <$> (entryGetText text_field)

Ответ 2

Я считаю, что в Haskell оператор конкатенации строк ++.

Ответ 3

В тот самый момент, когда вы используете оператор присваивания x <- expr с expr :: m a и m, являющийся некоторой монадой, x не является m a, а скорее a. В вашем случае переменная a имеет тип String, а не IO String, поэтому вы можете объединить ее так же, как в чистом коде, например. "hello world " ++ a.