この挿入機能がある場合:
insert x [] = [x]
insert x (h:t)
| x <= h = x:(h:t)
| otherwise = h:(insert x t)
これにより、ソートされたリストが生成されます。
foldr insert [] [1,19,-2,7,43]
でも、これ:
foldr1 insert [1,19,-2,7,43]
生成する'無限型を構築することはできません:a0 = [a0] '
2番目の呼び出しが機能しない理由について混乱しています。
foldrとfoldr1の両方の定義を確認し、両方を単純な算術関数でトレースしましたが、2番目の呼び出しが失敗する理由を明確に説明することはできません。