管道符号是什么意思?

时间:2017-05-02 13:55:20

标签: haskell

以下是haskell的理解,我不明白的是管道符号。它的意思是什么?它在功能中的作用是什么?

boomBangs xs = [ if x < 10 then "BOOM!" else "BANG!" | x <- xs, odd x]

ghci> let xxs = [[1,3,5,2,3,1,2,4,5],[1,2,3,4,5,6,7,8,9],[1,2,4,2,1,6,3,1,3,2,3,6]]  

ghci> [ [ x | x <- xs, even x ] | xs <- xxs] 

[[2,2,4],[2,4,6,8],[2,4,2,6,2,6]]

1 个答案:

答案 0 :(得分:2)

其列表推导的表达式/语法。一个简单的例子如下,

import Data.Char (toUpper)
[toUpper c | c <- s]

你将一个字符串(字符列表),[s]和#34; Hello&#34;传递给生成器[c&lt; - s],这将s的每个字符输入到左侧表达式[ toUpper c],建立一个新列表。这个列表理解的结果将是&#34; HELLO&#34;。