Char для функции строки
У меня очень простой вопрос, если у вас есть функция, в которой задан char, а затем выводится строка;
test :: Char -> [String]
Как преобразовать char в строку? Я запутался в двух типах.
Ответы
Ответ 1
В Haskell String
есть псевдоним для [Char]
:
type String = [Char]
Если вам просто нужна функция, которая преобразует один char в строку, вы можете, например. сделать
charToString :: Char -> String
charToString c = [c]
Если вы предпочитаете стиль pointfree, вы также можете написать
charToString :: Char -> String
charToString = (:[])
Ответ 2
A Строка - это просто [ Char]
Но это просто хороший способ сказать
'H':'E':'L':'L':'O':[]
Итак, чтобы сделать это [String], мы могли бы сделать:
['H':'E':'L':'L':'O':[]]
Ответ 3
Другой способ:
return . return
Так как return
для списков определяется как :[]
Ответ 4
Обратите внимание, что вы можете преобразовать любой тип, реализующий класс типа Show
в строку, используя Show
:
(Show a) => a -> String
Поскольку Char
реализует это, функция уже написана для вас!