From 5e8d2432b36a5379184d0385334629e06dc23cfa Mon Sep 17 00:00:00 2001 From: tA Date: Thu, 31 Oct 2019 22:03:29 +1300 Subject: [PATCH] updated to week 6 minus week 5 oops --- 201/week6/lib/dfs.hoon | 24 ++++++++++++++++++++++++ 201/week6/tests/lib/dfs.hoon | 44 ++++++++++++++++++++++++++++++++++++++++++++ README.md | 24 ++++++++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 201/week6/lib/dfs.hoon create mode 100644 201/week6/tests/lib/dfs.hoon diff --git a/201/week6/lib/dfs.hoon b/201/week6/lib/dfs.hoon new file mode 100644 index 0000000..6888a13 --- /dev/null +++ b/201/week6/lib/dfs.hoon @@ -0,0 +1,24 @@ +:: depth first library +:: +|% +++ traverse + |= t=(tree @) + ^- (list @) + ?~ t + ~ + %+ weld + (traverse l.t) + %+ weld + (traverse r.t) + [n.t ~] +++ search + |= [t=(tree @) x=@] + ^- ? + ?~ t + %.n + ?| (search l.t x) + (search r.t x) + =(n.t x) + == +-- + diff --git a/201/week6/tests/lib/dfs.hoon b/201/week6/tests/lib/dfs.hoon new file mode 100644 index 0000000..6577e61 --- /dev/null +++ b/201/week6/tests/lib/dfs.hoon @@ -0,0 +1,44 @@ +:: Hoon 201 - Week 6 +:: ~bannum-magtus | s@p7.co.nz +:: +/+ *test, dfs +:: +|% +++ test-dfs-search ^- tang + =/ null-tree=(tree @) *(tree @) + =/ fill-tree=(tree @) [12 [8 [4 ~ ~] ~] [14 ~ [16 ~ ~]]] + ;: weld + :: cant find something in an empty tree + %+ expect-eq + !> %.n + !> (search:dfs null-tree 42) + :: cant find something thats not in a tree + %+ expect-eq + !> %.n + !> (search:dfs fill-tree 42) + :: can find something that is in a tree + %+ expect-eq + !> %.y + !> (search:dfs fill-tree 12) + == +++ test-dfs-traverse ^- tang + =/ null-tree=(tree @) *(tree @) + =/ a-tree=(tree @) [12 [8 [4 ~ ~] ~] [14 ~ [16 ~ ~]]] + =/ b-tree=(tree @) [8 [4 [12 ~ ~] ~] [16 ~ [14 ~ ~]]] + =/ a-list=(list @) [4 8 16 14 12 ~] + =/ b-list=(list @) [12 4 14 16 8 ~] + ;: weld + :: null tree has empty traversal + %+ expect-eq + !> ~ + !> (traverse:dfs null-tree) + :: tree a has traversal a + %+ expect-eq + !> a-list + !> (traverse:dfs a-tree) + :: tree b has traversal b + %+ expect-eq + !> b-list + !> (traverse:dfs b-tree) + == +-- diff --git a/README.md b/README.md index d15dbd3..f9e20dc 100644 --- a/README.md +++ b/README.md @@ -35,3 +35,27 @@ deal two poker hands and rank them ## Week 2 Depth first search a tree + +## Week 3 + +Write +turn without stdlib + +## Week 4 + +Rewrite Egg-Timer (Gall App) to take an absolute date + +## Week 5 + +Write a Gall App that queries an api + +## Week 6 + +Write a test suite for a library + +## Week 7 + +Write a Modulo Tile for a simple Todo List + +## Week 8 + +Create something hopefully impressive