loredanacirstea / taylor

Measure twice, cut once. Lisp-like functional language for computable & immutable specifications, interpreted by WebAssembly & the Ethereum Virtual Machine.
https://loredanacirstea.github.io/taylor/
GNU General Public License v3.0
37 stars 2 forks source link

Allow lambda application in let* definitions, not only in let* body #77

Open loredanacirstea opened 4 years ago

loredanacirstea commented 4 years ago

Fails with out of gas:

(let* (
        somef (fn* ()
            (let* (
                    otherf (fn* (a) a)
                    somevar (otherf 29)
                )
                    somevar
            )
        )
    )
    (somef)
)

works:

(let* (
        somef (fn* ()
            (let* (
                    otherf (fn* (a) a)
                    somevar (otherf 29)
                )
                    (otherf 29)
            )
        )
    )
    (somef)
)