【发布时间】:2015-08-06 06:17:47
【问题描述】:
我不知道 Haskell,我只是想玩弄它来学习它。我试图理解 io、monads 等,并在解释器中写了这个(GHCi,版本 7.10.2,WinGHCI):
Prelude> [1,1] >> "ok"
"okok"
Prelude> [1,1,1] >> "ok"
"okokok"
Prelude> [1..10] >> "ok"
"okokokokokokokokokok"
Prelude> [1] >> "ok" >> [1] >> "ok"
"okok"
Prelude> [1,2] >> "ok" >> [1,2] >> "ok"
"okokokokokokokok"
Prelude> [1..10] >> [1..10]
[1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10]
愿意解释一下吗?为什么列表中的元素数量会影响写入“ok”的次数(或者在最后一种情况下,会影响写入数组的次数)? >> 运算符不应该这样做,是吗?
【问题讨论】: