Ackermann very inefficient with Haskell/GHC
I try computing Ackermann(4,1) and there's a big difference in performance between different languages/compilers. Below are results on my Core i7 3820QM, 16G, Ubuntu 12.10 64bit , C: 1.6s , gcc -O3 (with gcc 4.7.2) int ack(int m, int n) { if (m == 0) return n+1; if (n == 0) return ack(m-1, 1); return ack(m-1, ack(m, n-1)); } int main() { printf("%d\n", ack(4,1)); return 0; } OCaml: 3.6s , ocamlopt (with ocaml 3.12.1) let rec ack = function | 0,n -> n+1 | m,0 -> ack (m-1, 1) | m,n -> ack (m-1, ack (m, n-1)) in print_int (ack (4, 1)) Standard ML: 5.1s mlton -codegen c -cc-opt -O3 (with mlton