所以我想明白Haskell do
表示法的工作原理。 我知道它与单子一起使用,它基本上扩展(因为它实际上是语法糖)到与绑定(>>=
)或(>>
)连接的匿名函数中,如https://en.wikibooks.org/wiki/Haskell/Syntactic_sugar#Do_notation所示。Haskell:'do [1,2,3]; [“你好”]'行为澄清
然而我的问题是为什么下面的命令
Prelude> do [1, 2, 3]; "hello"
回报
"hellohellohello"
我知道,数组实际上是单子(以及字符串是字符数组),但我看不到这是如何导致上述行为的。
此外,正确的术语是“列表”,因为“数组”通常被理解为在内存中连续排列。 –
'do x < - [“baby,”,“darling”,“ragtime gal”]; “你好我的”++ x' –