Haskell -> После разбора, как работать со строками - PullRequest
2 голосов
/ 26 декабря 2010

Hello после разбора скрипта на Haskell я получил файл с «появлением» списков строк. Однако, когда я вызываю содержимое файла с помощью функции getContents или hGetContents , т. Е. Читая содержимое, я получаю что-то вроде: линии (схематично то, что я хочу: " [" aaa "," bbb "" ccc "] " -> ["aaa", "bbb" "ccc"]) Я пробовал с read , но безрезультатно. Мне нужно работать с этими списками строк, чтобы объединить их все в один список.

Я использую функцию lines, но я думаю, что она «работает» только по одной строке за раз, не так ли? Мне нужна функция, которая проверяет, повторяется ли элемент строки в другой строке . Если бы у меня мог быть список списка строк, это было бы проще (но у меня есть строка строки, которая выглядит как список строк) С уважением Спасибо.

Ответы [ 3 ]

2 голосов
/ 26 декабря 2010

Я пробовал с функцией чтения, но без результатов

Только что проверил, и она отлично работает:

Prelude> read "[\"aaa\",\"bbb\",\"ccc\"]" :: [String]
["aaa","bbb","ccc"]

Обратите внимание, что вы должны дать возвратвведите явно, так как его нельзя определить по типу аргумента.

0 голосов
/ 29 декабря 2010

В моем понимании, вы можете

создать функцию, которая получает список списков, каждый список является строкой всей строки переданного аргумента и проверяет, является ли элементстрока встречается в другой строке.

затем эта функция пропускает всю строку, разделенную строками, используя [lines] [1].

0 голосов
/ 27 декабря 2010

Я думаю, что вам нужна функция lines из Data.List (реэкспортированная с помощью Prelude), которая разбивает многострочную строку на список строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...