Our target for this exercise is “Things that other languages should take from Lisp”.
Bignum support
In Scheme and Common Lisp, by default you can’t overflow an integer…
Prelude> fac n = product [2..n]
Prelude> fac 100
933262154439441526816992388562667004907159682643816214685929638952175999932299156089414639761565182862536979208272237582
51185210916864000000000000000000000000
In Common Lisp, you can force your code to use fixed-size numbers (fixnums) for efficiency…
Prelude> let fac n = product [2..n] :: Int
Prelude> [...]
