是否存在本机函数,其行为类似于Haskell的范围?
我发现2..1
在PureScript中返回列表[2, 1]
,这与Haskell的[2..1]
返回空列表[]
不同。谷歌搜索之后,我发现该行为写在Differences from Haskell文档中,但没有给出背后的理由。
我认为,这种行为有点不方便/不直观,因为当0 .. (len - 1)
为零时len
不会提供空白列表,这可能会导致隐秘的错误。
len
的范围从0开始递增)而无需每次都处理length == 0
情况? P.S。我怎么遇到这个问题:我想编写一个getLocalStorageKeys
函数,该函数从本地存储中获取所有密钥。我的实现使用length函数获取键的数量,创建从0到numKeys - 1
的范围,然后使用key函数遍历该范围。但是,该范围的表现不符合我的预期。
答案 0 :(得分:0)
如何自己制作?
indicies :: Int -> Array Int
indicies n = if n <= 0 then [] else 0..(n-1)
至于“为什么”,我只能推测,我的想法是要避免这种if
fy逻辑来创建“反向”范围-这确实可以解决我偶尔在Haskell。