如何将字符列表转换为纯脚本中的字符串
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
来自 Purescript 中的 Data.List
)。在 Haskell 中,[Char]
与 String
相同,因此不需要其他处理,但是,我找不到从 List Char
转换为原生 [=16] 的函数=] 在纯脚本中!
我的搜索将我带到 Data.String
中的 fromCharArray :: Array Char -> String
,但是我找不到从 List Char
转换为 Array Char
!
的方法
我可以通过折叠 List Char
并使用 snoc
构建 Array Char
来手动在它们之间进行转换,但我肯定错过了一个内置的解决方案,看起来像是基本的字符串操作在纯脚本中!
编辑: fromList
用于将任何 Unfoldable
(例如数组)转换为 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 []
""
我正在寻找一种在 Purescript 中编写函数的惯用方法 List Char -> String
。
这似乎是一件简单的事情,但我是 Purescript 的新手并且已经浏览了一段时间的文档但没有任何进展!
背景信息: 我正在将一个简单的函数从 Haskell 移植到 Purescript
generateId :: Int -> [Char]
这会生成指定长度的字符串。将代码转换为使用 List Char
操作非常容易(其中 List
来自 Purescript 中的 Data.List
)。在 Haskell 中,[Char]
与 String
相同,因此不需要其他处理,但是,我找不到从 List Char
转换为原生 [=16] 的函数=] 在纯脚本中!
我的搜索将我带到 Data.String
中的 fromCharArray :: Array Char -> String
,但是我找不到从 List Char
转换为 Array Char
!
我可以通过折叠 List Char
并使用 snoc
构建 Array Char
来手动在它们之间进行转换,但我肯定错过了一个内置的解决方案,看起来像是基本的字符串操作在纯脚本中!
编辑: fromList
用于将任何 Unfoldable
(例如数组)转换为 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 []
""