From a3e6903512e7724aabd32861216daa5fc501406e Mon Sep 17 00:00:00 2001 From: Lucas Ransan Date: Tue, 15 Jun 2021 02:05:04 +0200 Subject: Raku week 117 task 2 --- challenge-117/luc65r/raku/ch-2.raku | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100755 challenge-117/luc65r/raku/ch-2.raku diff --git a/challenge-117/luc65r/raku/ch-2.raku b/challenge-117/luc65r/raku/ch-2.raku new file mode 100755 index 0000000000..f5ae5d6246 --- /dev/null +++ b/challenge-117/luc65r/raku/ch-2.raku @@ -0,0 +1,37 @@ +#!/usr/bin/env raku + +enum Move ; + +class Node { + also is Hash[Node, Move:D]; + + method dirs(Node:D: --> Iterable) { + gather { + for self.kv -> $k, $v { + with $v { + my @d = .dirs; + take $k ~ $_ for @d ?? @d !! ''; + } + } + } + } +} + +sub MAIN(UInt:D $size) { + my $top = construct-triangle($size); + .say for $top.dirs; +} + +sub construct-triangle(UInt:D $size --> Node) { + my Node @line; + for $size … 0 -> $j { + for 0 .. $j -> $i { + @line[$i] = Node.new( + (H) => try { @line[$i - 1] }, + (L) => @line[$i + 1], + (R) => @line[$i], + ); + } + } + @line[0] +} -- cgit