From 7a348aca6231a5005c1e0c19de240d337f19d7ec Mon Sep 17 00:00:00 2001 From: Asher Harvey-Smith Date: Tue, 7 May 2024 01:11:32 +0100 Subject: challenge 268 --- challenge-268/asherbhs/apl/ch-1.apl | 5 +++++ challenge-268/asherbhs/apl/ch-2.apl | 5 +++++ challenge-268/asherbhs/bqn/ch-1.bqn | 5 +++++ challenge-268/asherbhs/bqn/ch-2.bqn | 5 +++++ challenge-268/asherbhs/haskell/ch-1.hs | 8 ++++++++ challenge-268/asherbhs/haskell/ch-2.hs | 15 +++++++++++++++ challenge-268/asherbhs/hy/ch-1.hy | 7 +++++++ challenge-268/asherbhs/hy/ch-2.hy | 14 ++++++++++++++ challenge-268/asherbhs/j/ch-1.ijs | 7 +++++++ challenge-268/asherbhs/j/ch-2.ijs | 7 +++++++ challenge-268/asherbhs/raku/ch-1.raku | 7 +++++++ challenge-268/asherbhs/raku/ch-2.raku | 7 +++++++ 12 files changed, 92 insertions(+) create mode 100644 challenge-268/asherbhs/apl/ch-1.apl create mode 100644 challenge-268/asherbhs/apl/ch-2.apl create mode 100644 challenge-268/asherbhs/bqn/ch-1.bqn create mode 100644 challenge-268/asherbhs/bqn/ch-2.bqn create mode 100644 challenge-268/asherbhs/haskell/ch-1.hs create mode 100644 challenge-268/asherbhs/haskell/ch-2.hs create mode 100644 challenge-268/asherbhs/hy/ch-1.hy create mode 100644 challenge-268/asherbhs/hy/ch-2.hy create mode 100644 challenge-268/asherbhs/j/ch-1.ijs create mode 100644 challenge-268/asherbhs/j/ch-2.ijs create mode 100644 challenge-268/asherbhs/raku/ch-1.raku create mode 100644 challenge-268/asherbhs/raku/ch-2.raku diff --git a/challenge-268/asherbhs/apl/ch-1.apl b/challenge-268/asherbhs/apl/ch-1.apl new file mode 100644 index 0000000000..cf6cd71ee4 --- /dev/null +++ b/challenge-268/asherbhs/apl/ch-1.apl @@ -0,0 +1,5 @@ +MagicNumber←-⍨⍥(⌊/) + +⎕←3 7 5 MagicNumber 9 5 7 +⎕←1 2 1 MagicNumber 5 4 4 +⎕←2 MagicNumber 5 diff --git a/challenge-268/asherbhs/apl/ch-2.apl b/challenge-268/asherbhs/apl/ch-2.apl new file mode 100644 index 0000000000..0826b24696 --- /dev/null +++ b/challenge-268/asherbhs/apl/ch-2.apl @@ -0,0 +1,5 @@ +NumberGame←,⍤⌽(⊂⍤⍋⌷⊢)⍴⍨2,⍨2÷⍨≢ + +⎕←NumberGame 2 5 3 4 +⎕←NumberGame 9 4 1 3 6 4 6 1 +⎕←NumberGame 1 2 2 3 diff --git a/challenge-268/asherbhs/bqn/ch-1.bqn b/challenge-268/asherbhs/bqn/ch-1.bqn new file mode 100644 index 0000000000..760c5a845a --- /dev/null +++ b/challenge-268/asherbhs/bqn/ch-1.bqn @@ -0,0 +1,5 @@ +MagicNumber←-˜○(⌊´) + +•Show 3‿7‿5 MagicNumber 9‿5‿7 +•Show 1‿2‿1 MagicNumber 5‿4‿4 +•Show ⟨2⟩ MagicNumber ⟨5⟩ diff --git a/challenge-268/asherbhs/bqn/ch-2.bqn b/challenge-268/asherbhs/bqn/ch-2.bqn new file mode 100644 index 0000000000..dc29b4c0be --- /dev/null +++ b/challenge-268/asherbhs/bqn/ch-2.bqn @@ -0,0 +1,5 @@ +NumberGame←⥊·⌽˘∘‿2⥊∧ + +•Show NumberGame 2‿5‿3‿4 +•Show NumberGame 9‿4‿1‿3‿6‿4‿6‿1 +•Show NumberGame 1‿2‿2‿3 diff --git a/challenge-268/asherbhs/haskell/ch-1.hs b/challenge-268/asherbhs/haskell/ch-1.hs new file mode 100644 index 0000000000..e627573135 --- /dev/null +++ b/challenge-268/asherbhs/haskell/ch-1.hs @@ -0,0 +1,8 @@ +magicNumber :: [Int] -> [Int] -> Int +magicNumber x y = minimum y - minimum x + +main :: IO () +main = do + print $ magicNumber [3, 7, 5] [9, 5, 7] + print $ magicNumber [1, 2, 1] [5, 4, 4] + print $ magicNumber [2] [5] diff --git a/challenge-268/asherbhs/haskell/ch-2.hs b/challenge-268/asherbhs/haskell/ch-2.hs new file mode 100644 index 0000000000..f6724f5cbc --- /dev/null +++ b/challenge-268/asherbhs/haskell/ch-2.hs @@ -0,0 +1,15 @@ +import Data.List (sort) + +numberGame :: [Int] -> [Int] +numberGame = flipAdjacent . sort + where + flipAdjacent :: [Int] -> [Int] + flipAdjacent [] = [] + flipAdjacent (x : y : t) = y : x : flipAdjacent t + +main :: IO () +main = do + print $ numberGame [2, 5, 3, 4] + print $ numberGame [9, 4, 1, 3, 6, 4, 6, 1] + print $ numberGame [1, 2, 2, 3] + diff --git a/challenge-268/asherbhs/hy/ch-1.hy b/challenge-268/asherbhs/hy/ch-1.hy new file mode 100644 index 0000000000..67a9aa6056 --- /dev/null +++ b/challenge-268/asherbhs/hy/ch-1.hy @@ -0,0 +1,7 @@ +(import hyrule *) + +(defn magic-number [x y] (- (min y) (min x))) + +(pprint (magic-number [3 7 5] [9 5 7])) +(pprint (magic-number [1 2 1] [5 4 4])) +(pprint (magic-number [2] [5])) diff --git a/challenge-268/asherbhs/hy/ch-2.hy b/challenge-268/asherbhs/hy/ch-2.hy new file mode 100644 index 0000000000..9bc23a468b --- /dev/null +++ b/challenge-268/asherbhs/hy/ch-2.hy @@ -0,0 +1,14 @@ +(import + hyrule * + itertools * +) + +(defn number-game [ints] (lfor + #(x y) (batched (sorted ints) 2) + z #(y x) + z +)) + +(print (number-game [2 5 3 4])) +(print (number-game [9 4 1 3 6 4 6 1])) +(print (number-game [1 2 2 3])) diff --git a/challenge-268/asherbhs/j/ch-1.ijs b/challenge-268/asherbhs/j/ch-1.ijs new file mode 100644 index 0000000000..0eb5606dc3 --- /dev/null +++ b/challenge-268/asherbhs/j/ch-1.ijs @@ -0,0 +1,7 @@ +MagicNumber=.-~&(<./) + +echo 3 7 5 MagicNumber 9 5 7 +echo 1 2 1 MagicNumber 5 4 4 +echo 2 MagicNumber 5 + +exit '' diff --git a/challenge-268/asherbhs/j/ch-2.ijs b/challenge-268/asherbhs/j/ch-2.ijs new file mode 100644 index 0000000000..0da8626894 --- /dev/null +++ b/challenge-268/asherbhs/j/ch-2.ijs @@ -0,0 +1,7 @@ +NumberGame=.[:,[:|."1/:~$~2,~2%~# + +echo NumberGame 2 5 3 4 +echo NumberGame 9 4 1 3 6 4 6 1 +echo NumberGame 1 2 2 3 + +exit '' diff --git a/challenge-268/asherbhs/raku/ch-1.raku b/challenge-268/asherbhs/raku/ch-1.raku new file mode 100644 index 0000000000..1a83b97bd3 --- /dev/null +++ b/challenge-268/asherbhs/raku/ch-1.raku @@ -0,0 +1,7 @@ +sub magic-number(Int:D @x, Int:D @y --> Int:D) { + @y.min - @x.min +} + +say magic-number Array[Int:D].new(3, 7, 5), Array[Int:D].new(9, 5, 7); +say magic-number Array[Int:D].new(1, 2, 1), Array[Int:D].new(5, 4, 4); +say magic-number Array[Int:D].new(2), Array[Int:D].new(5); diff --git a/challenge-268/asherbhs/raku/ch-2.raku b/challenge-268/asherbhs/raku/ch-2.raku new file mode 100644 index 0000000000..bdefaff13c --- /dev/null +++ b/challenge-268/asherbhs/raku/ch-2.raku @@ -0,0 +1,7 @@ +sub number-game(Int:D @ints --> Array:D[Int:D]) { + @ints.sort.map({ |($^b, $^a) }).Array +} + +say number-game Array[Int:D].new: 2, 5, 3, 4; +say number-game Array[Int:D].new: 9, 4, 1, 3, 6, 4, 6, 1; +say number-game Array[Int:D].new: 1, 2, 2, 3; -- cgit From a26711f447329804daae71052173635e14b64a3f Mon Sep 17 00:00:00 2001 From: Asher Harvey-Smith Date: Tue, 7 May 2024 01:14:24 +0100 Subject: tweak --- challenge-268/asherbhs/hy/ch-2.hy | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/challenge-268/asherbhs/hy/ch-2.hy b/challenge-268/asherbhs/hy/ch-2.hy index 9bc23a468b..6cd2a29218 100644 --- a/challenge-268/asherbhs/hy/ch-2.hy +++ b/challenge-268/asherbhs/hy/ch-2.hy @@ -9,6 +9,6 @@ z )) -(print (number-game [2 5 3 4])) -(print (number-game [9 4 1 3 6 4 6 1])) -(print (number-game [1 2 2 3])) +(pprint (number-game [2 5 3 4])) +(pprint (number-game [9 4 1 3 6 4 6 1])) +(pprint (number-game [1 2 2 3])) -- cgit From edfd229b75c72d0da4cc73ad4404fd9c85a9bffb Mon Sep 17 00:00:00 2001 From: Asher Harvey-Smith Date: Wed, 8 May 2024 18:59:15 +0100 Subject: nu solutions --- challenge-268/asherbhs/nu/ch-1.nu | 7 +++++++ challenge-268/asherbhs/nu/ch-2.nu | 7 +++++++ 2 files changed, 14 insertions(+) create mode 100644 challenge-268/asherbhs/nu/ch-1.nu create mode 100644 challenge-268/asherbhs/nu/ch-2.nu diff --git a/challenge-268/asherbhs/nu/ch-1.nu b/challenge-268/asherbhs/nu/ch-1.nu new file mode 100644 index 0000000000..815d10b1a4 --- /dev/null +++ b/challenge-268/asherbhs/nu/ch-1.nu @@ -0,0 +1,7 @@ +def magic-number [x: list, y: list] { + ($y | math min) - ($x | math min) +} + +print (magic-number [3 7 5] [9 5 7]) +print (magic-number [1 2 1] [5 4 4]) +print (magic-number [2] [5]) diff --git a/challenge-268/asherbhs/nu/ch-2.nu b/challenge-268/asherbhs/nu/ch-2.nu new file mode 100644 index 0000000000..09f87b65ae --- /dev/null +++ b/challenge-268/asherbhs/nu/ch-2.nu @@ -0,0 +1,7 @@ +def number-game [ints: list] { + $ints | sort | group 2 | each { reverse } | flatten +} + +print (number-game [2 5 3 4]) +print (number-game [9 4 1 3 6 4 6 1]) +print (number-game [1 2 2 3]) -- cgit From f76f7d7cc810df3136f5e1d72486588433298fa2 Mon Sep 17 00:00:00 2001 From: Asher Harvey-Smith Date: Thu, 9 May 2024 11:08:39 +0100 Subject: nu return type annotations --- challenge-268/asherbhs/nu/ch-1.nu | 2 +- challenge-268/asherbhs/nu/ch-2.nu | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/challenge-268/asherbhs/nu/ch-1.nu b/challenge-268/asherbhs/nu/ch-1.nu index 815d10b1a4..91b36d38b2 100644 --- a/challenge-268/asherbhs/nu/ch-1.nu +++ b/challenge-268/asherbhs/nu/ch-1.nu @@ -1,4 +1,4 @@ -def magic-number [x: list, y: list] { +def magic-number [x: list, y: list] -> int { ($y | math min) - ($x | math min) } diff --git a/challenge-268/asherbhs/nu/ch-2.nu b/challenge-268/asherbhs/nu/ch-2.nu index 09f87b65ae..cf70c3a0f8 100644 --- a/challenge-268/asherbhs/nu/ch-2.nu +++ b/challenge-268/asherbhs/nu/ch-2.nu @@ -1,4 +1,4 @@ -def number-game [ints: list] { +def number-game [ints: list] -> list { $ints | sort | group 2 | each { reverse } | flatten } -- cgit From fd80e5637b9272082a37fb2a272b19e8dc800c20 Mon Sep 17 00:00:00 2001 From: Asher Harvey-Smith Date: Thu, 9 May 2024 11:24:11 +0100 Subject: better hy --- challenge-268/asherbhs/hy/ch-2.hy | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/challenge-268/asherbhs/hy/ch-2.hy b/challenge-268/asherbhs/hy/ch-2.hy index 6cd2a29218..74f305be52 100644 --- a/challenge-268/asherbhs/hy/ch-2.hy +++ b/challenge-268/asherbhs/hy/ch-2.hy @@ -3,10 +3,14 @@ itertools * ) -(defn number-game [ints] (lfor - #(x y) (batched (sorted ints) 2) - z #(y x) - z +(require hyrule *) + +(defn number-game [ints] (as-> ints it + (sorted it) + (batched it 2) + (map reversed it) + (chain.from-iterable it) + (list it) )) (pprint (number-game [2 5 3 4])) -- cgit