如何将字符串转换为purescript中的字符列表?

时间:2018-07-03 15:21:10

标签: string purescript

我搜索了pursuit,但其中只有两个看起来很匹配:

  • 来自纯脚本的字符列表(模块:Node.Optlicative.Internal)
  • 来自purescript-yarn的toChars(模块:Data.String.Yarn)

并且yarnoptlicative都不适用于psc-package(使用psc-package 0.4.0和{"set": "psc-0.12.0", "source": "https://github.com/purescript/package-sets.git"}

相关问题:How do I convert a list of chars to a string in purescript

2 个答案:

答案 0 :(得分:2)

我首先要通过toCharArray转换为Array Char,然后转换为列表:

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中。根据您使用的编译器/库的版本进行调整。

偶然地:您确定需要列表而不是数组吗?与Haskell相比,PureScript中列表的惯用方式少。数组更常见。

答案 1 :(得分:1)

我将不得不写一个答案而不是对上一个答案进行评论,因为我还没有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)