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 реализует это, функция уже написана для вас!
Ответ 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':[]]
Ответ 4 Обратите внимание, что вы можете преобразовать любой тип, реализующий класс типа Show в строку, используя Show: (Show a) => a -> String Поскольку Char реализует это, функция уже написана для вас!