Haskell:打印列表元素

Zub*_*dva 0 haskell

我有一份清单 let a = [1,2,3,4]

我想一次提取2个元素来执行计算.谁能告诉我这是如何实现的?我是Haskell的新手.

我知道take 2 a.但是我如何将它放在一个循环中,以便一次提取2个元素.我很迷惑.

che*_*ner 5

这是一个例子.您(或应该)熟悉该map功能:

map :: (a -> b) -> [a] -> [b]
map f [] = []
map f (x:xs) = f x : map f xs
Run Code Online (Sandbox Code Playgroud)

在这里,您可能有一个带有两个参数的函数,并且希望一次将它应用于列表中的两个元素.这是一个mapTwo行为类似map但具有双参数函数的函数.为简单起见,我们假设列表具有偶数个元素.

mapTwo :: (a -> a -> b) -> [a] -> [b]
mapTwo f [] = []
mapTwo f (x1:x2:xs) = f x1 x2 : mapTwo f xs
Run Code Online (Sandbox Code Playgroud)

  • 看我的最后一句话.我只是不想深入了解如何处理具有奇数个值的列表. (2认同)