2014-03-17 4 views
0

Я хотел бы знать, как определить это как список в Haskell, чтобы я мог выполнять такие операции, как хвост, реверс и длина:Определение списков в Haskell

cars = "lamborghinis are my favourite types of car" 

Я пробовал:

let cars = [lamborghinis,are,my,favourite,types,of,car] 
let cars = ["lamborghinis","are","my","favourite","types","of","car"] 
let cars = ['lamborghinis','are','my','favourite','types','of','car'] 

Я использую http://learnyouahaskell.com/starting-out как учебник, как я новичок в Haskell, и я не могу видеть, куда я иду неправильно, я думал, что моя первая попытка выше будет правильно, как это, как она делает это в но с числами вместо слов.

Ошибка, которую я получаю: parse error on input 'of.

Любые идеи, в которых я ошибаюсь? Благодарю.

+1

Строки уже перечислена, т.е. строка является типом синоним [Char]. Например, «привет» и ['h', 'e', ​​'l', 'l', 'o'] - одни и те же вещи. Что вы хотите сделать именно так? – Emil

+0

получил сейчас работу за ответ :) – user2058186

ответ

4
let cars = "lamborghinis are my favourite types of car" 

делает автомобили список символов [Char]==String и head cars должны дать вам первую букву. Это особый синтаксис Haskell для строк

let cars2 = ["lamborghinis","are","my","favourite","types","of","car"] 

Это нормальная форма для определения списка и дает вам список строк [String] и head cars должны дать вам "lamborghinis". Вы также можете разделить слова на слова, используя функцию слов.

let cars3 = words cars 
+0

спасибо большое! теперь это работает :) – user2058186

1

Тип String является только типа синонимом для [Char].

Это означает, что, например, "Hello, you" такие же, как ['H','e','l','l','o',',',' ','y','o','u']

+0

спасибо, что ответ получил его сейчас! – user2058186

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