ree*_*eem 6 monads haskell ghc
>>=来执行此操作,还是可以使用其他方法将列表理解混合在一起?澄清:通过"假"列表理解我的意思是创建一个函数,它接受相同的输入并产生相同的输入,即返回值的表单,压缩在一起的列表,以及谓词或多个谓词.
Gab*_*lez 10
为了增加augustss答案,如果你有类似的东西:
[(x, y) | x <- [1..3], y <- [1..3], x + y == 4]
Run Code Online (Sandbox Code Playgroud)
......它等同于这种do符号的使用:
do x <- [1..3]
y <- [1..3]
guard (x + y == 4)
return (x, y)
Run Code Online (Sandbox Code Playgroud)
......这相当于以下用途concatMap:
concatMap (\x ->
concatMap (\y ->
if (x + y == 4) then [(x, y)] else []
) [1..3]
) [1..3]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
591 次 |
| 最近记录: |