【发布时间】:2022-01-10 11:33:57
【问题描述】:
我刚刚发现!! 运算符仅用于列表:
(!!) :: [a] -> Int -> a
所以我在 hoogle 上搜索了替代品:
我很惊讶没有找到一个!
所以我问:
- 在不将其转换回列表的情况下,按索引访问 ziplist 的方法是什么?
- 什么 hoogle 搜索会找到它
当然,回答 1 对回答 2 大有帮助,因为我有类型签名
【问题讨论】:
-
ziplist 与列表本质上是一样的,将其转换为列表是一个非常便宜的操作。只是 Applicative 实例不同。您可以定义:
at zl n = let xs = getZipList zl in xs !! n;但如果您打算将索引作为主要访问模式,则将 (zip) 列表转换为 Vector 可能更有效。