From d47dad16f8b40b8ac3aee4af86e9dcdb7dc28404 Mon Sep 17 00:00:00 2001 From: DualFroz Date: Fri, 28 Aug 2026 15:50:00 +0200 Subject: [PATCH] docs: add example program --- examples/demo.fml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 examples/demo.fml diff --git a/examples/demo.fml b/examples/demo.fml new file mode 100644 index 0000000..aee6482 --- /dev/null +++ b/examples/demo.fml @@ -0,0 +1,21 @@ +(* fml demo: Hindley-Milner inference and evaluation over a few classics. *) + +let rec fib = fun n -> if n < 2 then n else fib (n - 1) + fib (n - 2) ;; +fib 10 ;; + +let rec map = fun f -> fun xs -> + match xs with + | [] -> [] + | h :: t -> f h :: map f t ;; +map (fun x -> x * x) [1; 2; 3; 4; 5] ;; + +let compose = fun f -> fun g -> fun x -> f (g x) ;; + +let id = fun x -> x ;; +(id 1, id true) ;; + +let rec length = fun xs -> + match xs with + | [] -> 0 + | _ :: t -> 1 + length t ;; +length [10; 20; 30; 40] ;;