view tests/fact.ur @ 2126:ec1614fb97bb

Change MonoReduce to do fixed-pointing, since it sometimes enables more optimizations for itself (e.g., yanking lambdas out of [case]s)
author Adam Chlipala <adam@chlipala.net>
date Fri, 06 Mar 2015 09:46:21 -0500
parents a71223513c77
children
line wrap: on
line source
fun fact n = if n <= 1 then 1 else n * fact (n - 1)

fun factTr n acc = if n <= 1 then acc else factTr (n - 1) (n * acc)

fun main () : transaction page = return <xml>{[fact 10]}, {[factTr 10 1]}</xml>