我有一個串列,例如[1,2,3,4,5],我不僅需要知道當前元素,還需要知道前任??和后繼元素。是否有任何地圖功能可以使用如下:
map (\prev cur next -> ...) [1,2,3,4,5]
或者,也許你有另一個想法來解決這個問題?
uj5u.com熱心網友回復:
您可以使用tails然后處理每三個專案:
import Data.List(tails)
[ … | (x? : x? : x? : _) <- tails [1, 2, 3, 4, 5] ]
例如:
import Data.List(tails)
[ (x?, x?, x?) | (x? : x? : x? : _) <- tails [1, 2, 3, 4, 5] ]
因此,這里的(x?, x?, x?)引數將與和一起使用。(1, 2, 3)(2, 3, 4)(3, 4, 5)
uj5u.com熱心網友回復:
您可以將串列壓縮在一起并洗掉每個串列中的一個元素
>> as = [1..5]
>> zipWith3 (\prev cur next -> (prev, cur, next)) as (drop 1 as) (drop 2 as)
[(1,2,3),(2,3,4),(3,4,5)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/528523.html
標籤:列表哈斯克尔
