2014-11-17 3 views
0

Я смотрю на Хаскелла, и есть много вещей, которые я не могу получить. Я хочу создать функцию, которая получает int param и возвращает строку, я хочу использовать этот параметр для функции, но я мог бы найти, как это сделать.где возвращение идет на Haskell?

Это то, что я получил.

writePhrase :: Int -> String 
writePhrase x = "test " ++ value ++ " hello" 
    where value = x 

если кто-нибудь есть какие-либо ссылки на все варианты Возможное как создать функцию, используя Haskell, было бы здорово. Заранее спасибо.

+1

Обратите внимание, что это не имеет ничего общего с 'return' (который вам, вероятно, придется держаться подальше на пару дней, пока вам не будет удобно синтаксис haskell) - в вашем случае это просто ошибка типа, так как вы пытаетесь добавить 'Int' в' String', что, очевидно, t, потому что 'Int' не является списком. – Cubic

ответ

1

Вы можете использовать show, который преобразует свой аргумент в строку:

writePhrase :: Int -> String 
writePhrase x = "test " ++ show x ++ " hello" 
+0

любая хорошая ссылка для продолжения бурения в Haskell? – BlaShadow

+3

@BlaShadow Это отдельный вопрос, который уже задан в Stackoverflow. Я лично рекомендовал бы [lyahfgg] (http://learnyouahaskell.com/) - Real World Haskell (особенно первая пара глав) тоже приличный, но немного устаревший. – Cubic

1

Вы должны преобразовать Int в String через show функции:

writePhrase x = "test " ++ show x ++ " hello" 
2

Прежде всего, return является функция, которая используется только в монадических функциях, например, IO. Имейте в виду, что это всего лишь функция, в Haskell нет ничего особенного, поэтому она не выйдет из монадической функции раньше, как вы могли бы ожидать, исходя из языка C.

Но для решения вашей проблемы, вы просто должны преобразовать значение x в String, и вы можете легко сделать это с show:

writePhrase x = "test " ++ show x ++ " hello" 
Смежные вопросы