Как мне преобразовать строку в список символов в purescript? - PullRequest
0 голосов
/ 03 июля 2018

Я искал преследование , только два из них, кажется, хорошо совпадают:

  • charList из purescript-optlicative (модуль: Node.Optlicative.Internal)
  • toChars из purescript-пряжи (модуль: Data.String.Yarn)

И yarn, и optlicative недоступны в пакете psc (с использованием пакета psc 0.4.0 и {"set": "psc-0.12.0", "source": "https://github.com/purescript/package-sets.git"})

Смежный вопрос: Как преобразовать список символов в строку в purescript

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Мне нужно написать ответ вместо комментария к предыдущему ответу, потому что у меня еще нет 50 очков репутации. Требуется 50 очков репутации, прежде чем я смогу комментировать.

Чтобы преобразовать строку в список символов, вы можете использовать следующий код:

import Data.String.CodeUnits (toCharArray)  --from package purescript-strings@4.0.0
import Data.List (fromFoldable, List)
import Data.Function ( ($) )                --from package purescript-prelude@4.0.1

convertStringToListOfChars :: String -> List Char
convertStringToListOfChars str = fromFoldable $ toCharArray str

Из REPL его использование дает следующий результат:

> convertStringToListOfChars "abcde"
('a' : 'b' : 'c' : 'd' : 'e' : Nil)
0 голосов
/ 03 июля 2018

Я бы сначала преобразовал в Array Char через toCharArray, а затем преобразовал бы в список:

import Data.List as List
import Data.String.CodeUnits as String

...

List.fromFoldable $ String.toCharArray "abcd"

ПРИМЕЧАНИЕ: с purescript-strings v4.0.0, toCharArray экспортируется из Data.String.CodeUnits, но до этого оно было в Data.String. Настройте в соответствии с используемой версией компилятора / библиотеки.

Кстати: вы уверены, что вам нужен список, а не массив? Списки намного менее идиоматичны в PureScript, чем в Haskell. Массивы встречаются гораздо чаще.

...