Haskell-类似于 PureScript 中的范围?
Haskell-like range in PureScript?
有没有像 Haskell 的 运行ge 那样的本机函数?
我发现 2..1
returns 在 PureScript 中是一个列表 [2, 1]
,不像 Haskell 的 [2..1]
返回一个空列表 []
.谷歌搜索后,我发现该行为写在 Differences from Haskell 文档中,但它没有给出背后的基本原理。
在我看来,这种行为有点 inconvenient/unintuitive,因为当 len
为零时 0 .. (len - 1)
不会给出空列表,这可能会导致神秘的错误。
- 有没有办法在每次不处理
length == 0
情况的情况下获得预期的数组(即 运行ge 的长度 len
从 0 开始递增?
- 此外,为什么 PureScript 决定让 运行ge 表现得像那样?
P.S。我如何 运行 进入这个问题:我想写一个 getLocalStorageKeys
函数,它从本地存储中获取所有密钥。我的实现使用 length function, creates a range from 0 to numKeys - 1
, and then traverses it with the key 函数获取键的数量。然而,运行ge 并没有像我预期的那样运行。
自己做怎么样?
indicies :: Int -> Array Int
indicies n = if n <= 0 then [] else 0..(n-1)
至于 "why",我只能推测,我的推测是这个想法是为了避免这种 if
fy 逻辑来创建 "reverse" 范围 - 这是Haskell 中我偶尔会想到一些事情。
有没有像 Haskell 的 运行ge 那样的本机函数?
我发现 2..1
returns 在 PureScript 中是一个列表 [2, 1]
,不像 Haskell 的 [2..1]
返回一个空列表 []
.谷歌搜索后,我发现该行为写在 Differences from Haskell 文档中,但它没有给出背后的基本原理。
在我看来,这种行为有点 inconvenient/unintuitive,因为当 len
为零时 0 .. (len - 1)
不会给出空列表,这可能会导致神秘的错误。
- 有没有办法在每次不处理
length == 0
情况的情况下获得预期的数组(即 运行ge 的长度len
从 0 开始递增? - 此外,为什么 PureScript 决定让 运行ge 表现得像那样?
P.S。我如何 运行 进入这个问题:我想写一个 getLocalStorageKeys
函数,它从本地存储中获取所有密钥。我的实现使用 length function, creates a range from 0 to numKeys - 1
, and then traverses it with the key 函数获取键的数量。然而,运行ge 并没有像我预期的那样运行。
自己做怎么样?
indicies :: Int -> Array Int
indicies n = if n <= 0 then [] else 0..(n-1)
至于 "why",我只能推测,我的推测是这个想法是为了避免这种 if
fy 逻辑来创建 "reverse" 范围 - 这是Haskell 中我偶尔会想到一些事情。