[英]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.