【发布时间】:2019-05-17 15:06:52
【问题描述】:
是否有一个行为类似于 Haskell 范围的本机函数?
我发现 2..1 在 PureScript 中返回一个列表 [2, 1],这与 Haskell 的 [2..1] 返回一个空列表 [] 不同。谷歌搜索后,我发现该行为写在Differences from Haskell 文档中,但没有给出背后的理由。
在我看来,这种行为有点不方便/不直观,因为当 len 为零时,0 .. (len - 1) 不会给出空列表,这可能会导致神秘的错误。
- 有没有办法在不每次都处理
length == 0的情况下获得预期的数组(即长度范围len从0 递增)? - 另外,为什么 PureScript 决定让 range 表现得像那样?
附:我是如何遇到这个问题的:我想写一个getLocalStorageKeys 函数,它从本地存储中获取所有密钥。我的实现使用length 函数获取键的数量,创建从0 到numKeys - 1 的范围,然后使用key 函数遍历它。但是,该范围的行为与我预期的不同。
【问题讨论】:
标签: purescript