kempe-0.1.1.0: examples/factorial.kmp
loop : Int Int -- Int
=: [ swap dup 0 =
if( drop
, dup 1 - dip(*) swap loop )
]
; tail recursive factorial
;
; see C example: https://wiki.c2.com/?TailRecursion
fac_tailrec : Int -- Int
=: [ 1 loop ]
; naïve factorial
fac : Int -- Int
=: [ dup 0 =
if( drop 1
, dup 1 - fac * )
]
%foreign cabi fac
%foreign cabi fac_tailrec