johnwhitington / ocamli

OCaml interpreter
BSD 3-Clause "New" or "Revised" License
99 stars 0 forks source link

Do several variable lookups at once, or at least elide #2

Open johnwhitington opened 8 years ago

johnwhitington commented 8 years ago

For example in factorial.ml we have:

let rec factorial = fun n -> if n = 1 then 1 else n * factorial (n - 1) in let n = 4 in n * factorial (n - 1)
let rec factorial = fun n -> if n = 1 then 1 else n * factorial (n - 1) in let n = 4 in 4 * factorial (n - 1)
let rec factorial = fun n -> if n = 1 then 1 else n * factorial (n - 1) in let n = 4 in 4 * factorial (4 - 1)
let rec factorial = fun n -> if n = 1 then 1 else n * factorial (n - 1) in let n = 4 in 4 * factorial 3

And we would like n * factorial (n -1) to go to 4 * factorial (4 - 1) in one step.