在 dhall 中拆分字符串

Splitting a string in dhall

我正在玩 dhall,想知道如何实现形式为

的字符串拆分函数

λ(text: Text) -> λ(delimiter: Text) -> List Text

但是出现dhallhas no concept/type to represent individual characters.而且Prelude中没有这个功能

The only thing you can do with Text values is concatenate them

那么……这有可能吗?

现有的 Dhall 内置函数目前无法做到这一点。 Text 类型在概念上是不透明的,类似于 Double。对于 Text 类型的值,您唯一可以做的就是连接它们,但您不能内省、解析或比较它们是否相等。

我以这种方式限制 Text 的最初理由是该语言鼓励将强类型表示上游上游输入其输入。例如,不是拆分字符串,而是要求字符串已经被拆分(即期望输入类型 List Text 而不是 Text)。但是,这可能会在某个时候发生变化,因为标准并不是一成不变的,而是通过此处概述的过程随着时间的推移而发展的:

此外,即使不对语言进行更改,您仍然可以按照本指南使用 Haskell API 通过使用自己的内置函数扩展语言来进行试验:

编辑:自撰写此评论以来,有一件事发生了变化,即该语言现在支持 Text/replace 内置函数,因此即使您仍然无法拆分字符串,您也可以将一个分隔符替换为另一个分隔符。例如:

⊢ Text/replace " " "," "Foo Bar Baz"

"Foo,Bar,Baz"