2015-03-30 4 views
4

Мне было интересно, могу ли я преобразовать строку в список символов?Строка к списку символов

"jt5x=!" -> ["j","t","5","x","=","!"] 

По существу, это было бы?

example :: String -> [Char] 
+7

'example = id'. – user3237465

+6

'type String = [Char]'. «Строка» - это всего лишь список «Char» ... – Zeta

+2

@ user3237465 Это должен быть ответ! – m0nhawk

ответ

6

(Сбор комментарии в ответ)

Потому что в Haskell, Stringявляется список символов, т.е. [Char], просто возвращается на вход в данное будет делать.

example = id 

делает то, что вы хотите. Обратите внимание, что id определяется как

id x = x 

Ваш пример "jt5x=!" -> ["j","t","5","x","=","!"] не соответствует описанию: двойные кавычки "" заключите String не Одиночные Char актеры.Пожалуйста. Для символов используются одинарные кавычки '. Вы можете ввести

"jt5x=!" == ['j','t','5','x','=','!'] 

в GHCi и увидеть его возвращает True. Тип map (:[]) "jt5x=!" на самом деле см. ["j","t","5","x","=","!"].

+0

Могу ли я сохранить список ["j", "t", "5", "x", "=", "!"] где-нибудь? Потому что, я хочу работать с ним :( – Chryssa

+1

@Chryssa, лучше полностью заявить то, что вы хотите сделать. Да, люди будут задавать домашние вопросы, но попытайтесь закрепить там, где вы застряли (и включите это в свой вопрос). – Franky

+2

@Chryssa, как только вы увидите, что '[Char] = String', и как только вы поймете« карту », вы увидите, что то, что вы ищете, это' example :: String -> [String] 'with' example s = map (\ c -> [c]) s' - продолжайте и попробуйте в GHCi! (PS: Я видел, что у Фрэнки уже есть это там тоже - я позволяю этому стоять на случай, если вы не получите '(: []) 'еще;)) - PPS: еще один пример s = map return s' тоже будет работать - как только вы поймете, почему вы сделали первый шаг вверх Mountain-M: D – Carsten

Смежные вопросы