如何在chaurescript

时间:2016-01-02 10:49:52

标签: arrays string purescript

我正在寻找一种在Purescript中编写函数List Char -> String的惯用方法。

这似乎是一件很简单的事情,但我是Purescript的新手并且已经暂时浏览文档一段时间没有任何进展!

背景信息:我正在将一个简单的函数从Haskell移植到Purescript

generateId :: Int -> [Char]

这将生成指定长度的String。将代码转换为使用List Char操作非常容易(其中List来自Purescript中的Data.List)。在Haskell中[Char]String相同,因此不需要其他处理,但是,我找不到在Purescript中从List Char转换为本地String的函数!

<击> 我的搜索引导我fromCharArray :: Array Char -> String Data.String,但我无法找到从List Char转换为Array Char的方式!

我可以通过折叠List Char并使用Array Char构建snoc来手动转换它们,但我肯定错过了一个内置的解决方案看起来像Purescript中的基本字符串操作!

修改 fromList可以将任何Unfoldable(例如数组)转换为List。仍然保留这个问题,以防有更实用的方法。

2 个答案:

答案 0 :(得分:6)

我同意你的编辑。 Data.String.fromCharArray <<< Data.List.fromList对我来说听起来不错。 fromCharArray在原生JS中使用array.join("")实现。

更新: fromList现已弃用 - 请改用toUnfoldable

答案 1 :(得分:2)

[2021 年 1 月更新]

在 PureScript 0.13.8 中:

import Prelude 

> import Data.Array (toUnfoldable)
> import Data.String.CodeUnits (fromCharArray)
> fromListChars = fromCharArray <<< toUnfoldable
> fromListChars ['2', '0', '2', '1']
"2021"

> fromListChars []
""