Haskell模式匹配问题

Sud*_*ha 1 haskell pattern-matching

现行守则

嗨,我有这样的功能:

jj::[Int]->[Int]
jj xs = [x|x<-xs,x `mod` 2 ==0]
Run Code Online (Sandbox Code Playgroud)

对于输入, [1..20]它给我输出:

[2,4,6,8,10,12,14,16,18,20] -> only the values divisible by 2 
Run Code Online (Sandbox Code Playgroud)

我需要什么

如果列表值可以被2分割,则将其解释为0,否则为1:

输入:[243,232,243]

输出 :[1,0,1]

MGw*_*nne 5

当然你只想要地图:

jj::[Int]->[Int]
jj xs = map (`mod` 2) xs
Run Code Online (Sandbox Code Playgroud)

由于currying

map (`mod` 2) :: [Int] -> [Int]
Run Code Online (Sandbox Code Playgroud)

正是我们想要的功能,所以我们可以这样做:

jj::[Int]->[Int]
jj = map (`mod` 2)
Run Code Online (Sandbox Code Playgroud)

两者产量:

*Main> jj [2,4,5,6,8,9]
[0,0,1,0,0,1]
Run Code Online (Sandbox Code Playgroud)