如何获取列表中的多个第 n 个元素?
How can I get multiple nth elements in a list?
我想知道如何在一个函数中获取列表中的多个元素
例如,如果我想从列表 a
中获取元素 1、2、3 和 4,我必须键入 a!!0 ++ a!!1 ++ a!!2 ++ a!!3
。这会占用很多 space,尤其是当列表名称超过一个字符时。所以我想知道我是否可以做类似 a!![0,1,2,3]
的事情,并以更短的方式获取所有这些元素。谢谢。
您可以使用映射来查找列表的所有项目,因此:
map (a !!) [0,1,2,3]
如果您对前四项感兴趣,可以使用 take :: Int -> [a] -> [a]
:
<strong>take 4</strong> a
特别是因为通过索引查找(使用 (!!)
)在 Haskell 中不是常见操作:这是不安全的,因为不能保证索引在边界内。大多数列表处理是使用 take
、drop
、sum
、foldr
等函数完成的
我想知道如何在一个函数中获取列表中的多个元素
例如,如果我想从列表 a
中获取元素 1、2、3 和 4,我必须键入 a!!0 ++ a!!1 ++ a!!2 ++ a!!3
。这会占用很多 space,尤其是当列表名称超过一个字符时。所以我想知道我是否可以做类似 a!![0,1,2,3]
的事情,并以更短的方式获取所有这些元素。谢谢。
您可以使用映射来查找列表的所有项目,因此:
map (a !!) [0,1,2,3]
如果您对前四项感兴趣,可以使用 take :: Int -> [a] -> [a]
:
<strong>take 4</strong> a
特别是因为通过索引查找(使用 (!!)
)在 Haskell 中不是常见操作:这是不安全的,因为不能保证索引在边界内。大多数列表处理是使用 take
、drop
、sum
、foldr
等函数完成的