繁体   English   中英

如何将字符列表转换为纯脚本中的字符串

[英]How do I convert a list of chars to a string in purescript

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

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

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

generateId :: Int -> [Char]

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

我的搜索将我带到 fromCharArray:: Array Char -> String in Data.String ,但是我找不到将 List Char转换为 Array Char的方法!

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

编辑: fromList用于将任何Unfoldable (例如 Arrays)转换为List 仍然让这个问题悬而未决,以防有更惯用的方法来实现这一目标。

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

更新:现在不推荐使用fromList - 请改用toUnfoldable

[ 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 []
""

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM