代码之家  ›  专栏  ›  技术社区  ›  luochen1990

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

  •  0
  • luochen1990  · 技术社区  · 6 年前

    我已经找过了 pursuit ,只有两个看起来匹配得很好:

    • purescript optlicative中的字符列表(模块:node.optlicative.internal)
    • 来自purescript yarn的tochars(模块:data.string.yarn)

    两者都是 yarn optlicative 不适用于PSC包(使用PSC包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 回复  |  直到 6 年前
        1
  •  2
  •   Fyodor Soikin    6 年前

    我会先皈依 Array Char 通过 toCharArray ,然后转换为列表:

    import Data.List as List
    import Data.String.CodeUnits as String
    
    ...
    
    List.fromFoldable $ String.toCharArray "abcd"
    

    注: 截至 purescript-strings 4.0.0版, 托查拉雷 从导出 Data.String.CodeUnits ,但在那之前 Data.String 是的。根据正在使用的编译器/库版本进行调整。

    顺便问一下:你确定你需要一个列表而不是数组吗?purescript中的列表比haskell中的要少很多。数组更常见。

        2
  •  1
  •   Omar Mefire    6 年前

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