Предположим, я хочу построить функцию, которая превращает строку букв в список символов.Haskell: Как использовать тип Maybe в рекурсивных функциях?
Пример может быть, мы ввод а и было бы выход [a,b,c]
Я построил функцию:
tester:: String-> [Char]
tester []= []
tester (x:xs)= case x of
a -> a: (tester xs)
b -> b: (tester xs)
c -> c: (tester xs)
otherwise -> [n,o]
Haskell дает ошибку, которые n
и o
не в области. но n
и o
оба Шарса не так ли? Следовательно, [n,o]
- это номер [Char]
, соответствующий типу выхода. В чем проблема?
Я помню, где-то читал, что строка - это всего лишь список Char
s, также как и String
так же, как [Char]
?
Это не имеет никакого отношения к 'Maybe'. И нет. 'tester' - это просто последовательность символов в вашем коде, но это не' String'. Вы должны использовать '' 'для символов, например. '['n', 'o']' или '" no "'. Также 'a -> ...' всегда будет соответствовать. Вы хотите '' a '-> ... '. – Zeta
Послушайте, мне нравится, что больше людей попадает в Haskell, и я стараюсь быть здесь нежным, но, возможно, изучение Haskell по своему усмотрению не должно быть вашим первым знакомством с языком программирования? Возможно, вы могли бы попробовать хороший «вводный курс программирования» Курсера. (Я слышал о них большие вещи) –
В последнее время было несколько вопросов, на которых был ответ: «Вы должны процитировать своих персонажей». Интересно, связаны ли они и где эти учебные пособия или курсы колледжа вызывают путаницу. –