在Haskell中,列表推導是一種用來生成新列表的表達式。它的基本形式是 [ expression | generator1, generator2, ..., generatorN ]
。其中,expression
是一個關于生成器的表達式,generator
是一個形如 pattern <- list
的表達式,它用來從 list
中取出元素,并將其綁定到 pattern
上。
列表推導的工作流程如下:
list
中的元素,并將其綁定到 pattern
上。expression
的值,并將其加入到結果列表中。舉個例子,下面是一個簡單的列表推導示例:
-- 生成一個包含 1 到 10 的偶數的列表
evens = [ x | x <- [1..10], x `mod` 2 == 0 ]
在這個例子中,我們使用了一個生成器 x <- [1..10]
來遍歷從 1 到 10 的所有元素,然后通過篩選條件 x
mod 2 == 0
來選取偶數,最終得到結果為 [2, 4, 6, 8, 10]
。