对于大学作业,我正在学习 Haskell,当阅读有关 do-notation 和排序的内容时>>=,>>我遇到了这种我没有预料到的行为。
[1,2,3] >> [1] -- returns [1,1,1]
Run Code Online (Sandbox Code Playgroud)
谁能解释为什么第一个数组的每个元素都被第二个数组的元素替换?似乎列表以某种方式连接起来,而我预计第一个表达式的结果将被完全忽略,因此我期望[1]结果。
预先非常感谢。
我是 Haskell 的新手,想知道语句如何
[ (x !! 0, x !! 1) | x <- mapM (const ['A', 'B', 'C'] ) [1..2], head x < head (tail x) ]
Run Code Online (Sandbox Code Playgroud)
作品。(我在 StackOverflow 上找到了它。)我知道它输出什么,但我并没有真正理解它。