declare
fun lazy {HammingFun}
1|{FoldL1 [{MultHamming 2} {MultHamming 3} {MultHamming 5}] LMerge}
end
Hamming = {HammingFun}
fun {MultHamming N}
{LMap Hamming fun {$ X} N*X end}
end
fun lazy {LMap Xs F}
case Xs
of nil then nil
[] X|Xr then {F X}|{LMap Xr F}
end
end
fun lazy {LMerge Xs=X|Xr Ys=Y|Yr}
if X < Y then X|{LMerge Xr Ys}
elseif X > Y then Y|{LMerge Xs Yr}
else X|{LMerge Xr Yr}
end
end
fun {FoldL1 X|Xr F}
{FoldL Xr F X}
end
in
{ForAll {List.take Hamming 20} System.showInfo}
{System.showInfo {Nth Hamming 1690}}
{System.showInfo {Nth Hamming 1000000}}
ZGVjbGFyZQogIGZ1biBsYXp5IHtIYW1taW5nRnVufQogICAgIDF8e0ZvbGRMMSBbe011bHRIYW1taW5nIDJ9IHtNdWx0SGFtbWluZyAzfSB7TXVsdEhhbW1pbmcgNX1dIExNZXJnZX0KICBlbmQKIAogIEhhbW1pbmcgPSB7SGFtbWluZ0Z1bn0KIAogIGZ1biB7TXVsdEhhbW1pbmcgTn0KICAgICB7TE1hcCBIYW1taW5nIGZ1biB7JCBYfSBOKlggZW5kfQogIGVuZAogCiAgZnVuIGxhenkge0xNYXAgWHMgRn0KICAgICBjYXNlIFhzCiAgICAgb2YgbmlsICB0aGVuIG5pbAogICAgIFtdIFh8WHIgdGhlbiB7RiBYfXx7TE1hcCBYciBGfQogICAgIGVuZAogIGVuZAogCiAgZnVuIGxhenkge0xNZXJnZSBYcz1YfFhyIFlzPVl8WXJ9CiAgICAgaWYgICAgIFggPCBZIHRoZW4gWHx7TE1lcmdlIFhyIFlzfQogICAgIGVsc2VpZiBYID4gWSB0aGVuIFl8e0xNZXJnZSBYcyBZcn0KICAgICBlbHNlICAgICAgICAgICAgICBYfHtMTWVyZ2UgWHIgWXJ9CiAgICAgZW5kCiAgZW5kCiAKICBmdW4ge0ZvbGRMMSBYfFhyIEZ9CiAgICAge0ZvbGRMIFhyIEYgWH0KICBlbmQKaW4KICB7Rm9yQWxsIHtMaXN0LnRha2UgSGFtbWluZyAyMH0gU3lzdGVtLnNob3dJbmZvfQogIHtTeXN0ZW0uc2hvd0luZm8ge050aCBIYW1taW5nIDE2OTB9fQogIHtTeXN0ZW0uc2hvd0luZm8ge050aCBIYW1taW5nIDEwMDAwMDB9fQ==
Mozart Compiler 1.4.0 (20080704) playing Oz 3
%%% feeding file prog.oz
%********************* binding analysis error *******************
%**
%** variable System not introduced
%**
%** in file "./prog.oz", line 30, column 33
%** ------------------ rejected (1 error)