packages feed

egison-3.3.8: sample/tak.egi

(define $tarai
  (lambda [$x $y $z]
    (if (lte? x y)
      y
      (tarai (tarai (- x 1) y z)
             (tarai (- y 1) z x)
             (tarai (- z 1) x y)))))

(test (tarai 1 1 1))
(test (tarai 4 2 1))

(define $tak
  (lambda [$x $y $z]
    (if (lte? x y)
      z
      (tak (tak (- x 1) y z)
           (tak (- y 1) z x)
           (tak (- z 1) x y)))))

(test (tak 1 1 1))
(test (tak 4 2 1))