From 29fded5cb9346cf596550061c109e1c0a717251c Mon Sep 17 00:00:00 2001 From: bog Date: Tue, 12 Sep 2023 11:16:05 +0200 Subject: [PATCH] ADD: nested function. ADD: function can returns other function or lambda. --- examples/fun.gri | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/examples/fun.gri b/examples/fun.gri index af17598..aeb7608 100644 --- a/examples/fun.gri +++ b/examples/fun.gri @@ -29,3 +29,24 @@ (if (eq? x 0) 1 (* x (self (- x 1))))) 6)) + +;; inner functions +($ (f n) + ($ (inner n) (+ n 1)) + (inner (inner n))) + +(assert-eq? 3 (f 1)) + +;; return function +($ (g) + ($ (inner n) (* 7 n)) + inner) + +(assert-eq? 42 ( (g) 6 )) + +;; return lambda +($ (h) + (-> (n) + (* 3 (- n 2)))) + +(assert-eq? 15 ( (h) 7 )) \ No newline at end of file