由於shown in this answer,seq結合undefined在等式推理方面做了很奇怪的事情,例如它可以使任何monad失敗。另一個例子是this question。 最近我偶然發現了evaluate :: a -> IO a做了類似的事情 - 它評估它的參數到WHNF,但只有當IO行動被評估。這似乎更安全了,因爲人們期望「在IO我們可以做所有事情」。當然,它無法在任何地方使用,但通常
一大早使用Erlang打我得到一個奇怪的結果: -module(bucle01).
-compile(export_all).
for(N) when N >=0 ->
lists:seq(1,N).
for(L,N) when L =< N ->
lists:seq(L,N);
for(L,N) when L