From c961506a3a23c7826c1df7653ee41ef14297cdd3 Mon Sep 17 00:00:00 2001 From: Lawrence Bethlenfalvy Date: Thu, 12 Oct 2023 18:53:31 +0100 Subject: [PATCH] Extended examples --- examples/file-browser/main.orc | 2 +- examples/fizz-buzz/main.orc | 16 ++++++++++++++++ examples/list-processing/main.orc | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 examples/fizz-buzz/main.orc diff --git a/examples/file-browser/main.orc b/examples/file-browser/main.orc index 0c3b08b..93685bc 100644 --- a/examples/file-browser/main.orc +++ b/examples/file-browser/main.orc @@ -1,7 +1,7 @@ import system::(io, fs, async) import std::(to_string, to_uint, inspect) -const folder_view := \path. \next. do{ +const folder_view := (path, next) => do{ cps println $ "Contents of " ++ fs::os_print path; cps entries = async::block_on $ fs::read_dir path; cps list::enumerate entries diff --git a/examples/fizz-buzz/main.orc b/examples/fizz-buzz/main.orc new file mode 100644 index 0000000..52bf896 --- /dev/null +++ b/examples/fizz-buzz/main.orc @@ -0,0 +1,16 @@ +import std::to_string + +const fizz_buzz := n => ( + (recursive r (i=0) list::cons i $ r (i + 1)) + |> list::map (i => + if i % 15 == 0 then "FizzBuzz" + else if i % 3 == 0 then "Fizz" + else if i % 5 == 0 then "Buzz" + else to_string i + ) + |> list::take n + |> list::reduce ((l, r) => l ++ "\n" ++ r) + |> option::unwrap +) + +const main := fizz_buzz 100 diff --git a/examples/list-processing/main.orc b/examples/list-processing/main.orc index bdaf7aa..fc18433 100644 --- a/examples/list-processing/main.orc +++ b/examples/list-processing/main.orc @@ -6,7 +6,7 @@ export const main := do{ let sum = bar |> list::skip 2 |> list::take 3 - |> list::reduce (\a. \b. a + b) + |> list::reduce ((a, b) => a + b) |> option::unwrap; cps println $ to_string sum; 0