From e1d05f02ab7c865d752d38d0611b95583876bd8b Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 8 Mar 2025 15:22:47 +0000 Subject: Partial implementation of array and lists --- examples/44-list-builder/shed-examples.json5 | 9 ++++++ examples/44-list-builder/shed.json5 | 11 +++++++ examples/44-list-builder/src/Lists.shed | 43 ++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 examples/44-list-builder/shed-examples.json5 create mode 100644 examples/44-list-builder/shed.json5 create mode 100644 examples/44-list-builder/src/Lists.shed (limited to 'examples') diff --git a/examples/44-list-builder/shed-examples.json5 b/examples/44-list-builder/shed-examples.json5 new file mode 100644 index 00000000..b669a2e6 --- /dev/null +++ b/examples/44-list-builder/shed-examples.json5 @@ -0,0 +1,9 @@ +{ + examples: [ + { + project: ".", + bin: "lists", + expectedOutput: "buildList()\nhello world\n\nbuildSameListTwice()\nhello world\nhello world\n", + }, + ], +} diff --git a/examples/44-list-builder/shed.json5 b/examples/44-list-builder/shed.json5 new file mode 100644 index 00000000..aaa788d6 --- /dev/null +++ b/examples/44-list-builder/shed.json5 @@ -0,0 +1,11 @@ +{ + bins: [ + { + name: "lists", + mainNamespace: "Lists", + }, + ], + dependencies: [ + {path: "../../projects/std"}, + ], +} diff --git a/examples/44-list-builder/src/Lists.shed b/examples/44-list-builder/src/Lists.shed new file mode 100644 index 00000000..7744e8d8 --- /dev/null +++ b/examples/44-list-builder/src/Lists.shed @@ -0,0 +1,43 @@ +import Std/Lists; + +pub fun main() ! Io -> Unit { + buildList!(); + buildSameListTwice!(); +} + +fun buildList() ! Io -> Unit { + print!("buildList()\n"); + + val builder = Lists.listBuilder[String](); + builder.add("hello"); + builder.add(" world\n"); + + val list = builder.build(); + + list.forEach!(fn (element) ! Io { + print!(element); + }); + + print!("\n"); +} + +fun buildSameListTwice() ! Io -> Unit { + print!("buildSameListTwice()\n"); + + val builder = Lists.listBuilder[String](); + builder.add("hello"); + builder.add(" world\n"); + + val list1 = builder.build(); + val list2 = builder.build(); + + list1.forEach!(fn (element) ! Io { + print!(element); + }); + + list2.forEach!(fn (element) ! Io { + print!(element); + }); + + print!("\n"); +} -- cgit v1.2.3