From ae4d12204fe18ad0bfe2395f5d3cb4abc4c8b44c Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Thu, 14 Oct 2021 19:53:15 +0100 Subject: - Tidied up guest contributions to week 88 by Conor Hoekstra. --- challenge-088/conor-hoekstra/apl/ch-1.apl | 10 ++++++++++ challenge-088/conor-hoekstra/bqn/ch-1.bqn | 10 ++++++++++ challenge-088/conor-hoekstra/ch-01.apl | 10 ---------- challenge-088/conor-hoekstra/ch-01.bqn | 10 ---------- challenge-088/conor-hoekstra/ch-01.cpp | 12 ------------ challenge-088/conor-hoekstra/ch-01.hs | 7 ------- challenge-088/conor-hoekstra/ch-01.ijs | 4 ---- challenge-088/conor-hoekstra/cpp/ch-1.cpp | 12 ++++++++++++ challenge-088/conor-hoekstra/haskell/ch-1.hs | 7 +++++++ challenge-088/conor-hoekstra/j/ch-1.ijs | 4 ++++ 10 files changed, 43 insertions(+), 43 deletions(-) create mode 100644 challenge-088/conor-hoekstra/apl/ch-1.apl create mode 100644 challenge-088/conor-hoekstra/bqn/ch-1.bqn delete mode 100644 challenge-088/conor-hoekstra/ch-01.apl delete mode 100644 challenge-088/conor-hoekstra/ch-01.bqn delete mode 100644 challenge-088/conor-hoekstra/ch-01.cpp delete mode 100644 challenge-088/conor-hoekstra/ch-01.hs delete mode 100644 challenge-088/conor-hoekstra/ch-01.ijs create mode 100644 challenge-088/conor-hoekstra/cpp/ch-1.cpp create mode 100644 challenge-088/conor-hoekstra/haskell/ch-1.hs create mode 100644 challenge-088/conor-hoekstra/j/ch-1.ijs diff --git a/challenge-088/conor-hoekstra/apl/ch-1.apl b/challenge-088/conor-hoekstra/apl/ch-1.apl new file mode 100644 index 0000000000..1cafa31091 --- /dev/null +++ b/challenge-088/conor-hoekstra/apl/ch-1.apl @@ -0,0 +1,10 @@ +⍝ Two Suboptimal Solutions +solution ← ⊃×/∘(¯1↓⍳∘≢⌽¨⊂) ⍝ Using rotates +solution ← ×/¨((↓∘.≠⍨∘⍳∘≢)⊢⍤/¨⊂) ⍝ Using filters (compresses) + +⍝ The Actual Solution +solution ← ×/÷⊢ + +⍝ Tests +solution 5 2 1 4 3 ⍝ 24 60 120 30 40 +solution 2 1 4 3 ⍝ 12 24 6 8 diff --git a/challenge-088/conor-hoekstra/bqn/ch-1.bqn b/challenge-088/conor-hoekstra/bqn/ch-1.bqn new file mode 100644 index 0000000000..5bdeb4fe6a --- /dev/null +++ b/challenge-088/conor-hoekstra/bqn/ch-1.bqn @@ -0,0 +1,10 @@ +# Two Suboptimal Solutions +Solution ← ×´¨1↓¨(↕∘≠)⌽¨< # Using rotates +Solution ← ×´¨(<˘≠⌜˜∘↕∘≠)/¨< # Using filters (replicates) + +# The Actual Solution +Solution ← ×´÷⊢ + +# Tests +Solution 5‿2‿1‿4‿3 # ⟨ 24 60 120 30 40 ⟩ +Solution 2‿1‿4‿3 # ⟨ 12 24 6 8 ⟩ diff --git a/challenge-088/conor-hoekstra/ch-01.apl b/challenge-088/conor-hoekstra/ch-01.apl deleted file mode 100644 index 1cafa31091..0000000000 --- a/challenge-088/conor-hoekstra/ch-01.apl +++ /dev/null @@ -1,10 +0,0 @@ -⍝ Two Suboptimal Solutions -solution ← ⊃×/∘(¯1↓⍳∘≢⌽¨⊂) ⍝ Using rotates -solution ← ×/¨((↓∘.≠⍨∘⍳∘≢)⊢⍤/¨⊂) ⍝ Using filters (compresses) - -⍝ The Actual Solution -solution ← ×/÷⊢ - -⍝ Tests -solution 5 2 1 4 3 ⍝ 24 60 120 30 40 -solution 2 1 4 3 ⍝ 12 24 6 8 diff --git a/challenge-088/conor-hoekstra/ch-01.bqn b/challenge-088/conor-hoekstra/ch-01.bqn deleted file mode 100644 index 5bdeb4fe6a..0000000000 --- a/challenge-088/conor-hoekstra/ch-01.bqn +++ /dev/null @@ -1,10 +0,0 @@ -# Two Suboptimal Solutions -Solution ← ×´¨1↓¨(↕∘≠)⌽¨< # Using rotates -Solution ← ×´¨(<˘≠⌜˜∘↕∘≠)/¨< # Using filters (replicates) - -# The Actual Solution -Solution ← ×´÷⊢ - -# Tests -Solution 5‿2‿1‿4‿3 # ⟨ 24 60 120 30 40 ⟩ -Solution 2‿1‿4‿3 # ⟨ 12 24 6 8 ⟩ diff --git a/challenge-088/conor-hoekstra/ch-01.cpp b/challenge-088/conor-hoekstra/ch-01.cpp deleted file mode 100644 index 722df1bf47..0000000000 --- a/challenge-088/conor-hoekstra/ch-01.cpp +++ /dev/null @@ -1,12 +0,0 @@ -// Godbolt Link: https://godbolt.org/z/dGGKzdYhn - -#include -#include -#include -#include - -auto array_product(std::vector v) -> std::vector { - auto const prod = std::accumulate(v.cbegin(), v.cend(), 1, std::multiplies{}); - std::transform(v.cbegin(), v.cend(), v.begin(), [=] (auto e) { return prod / e; }); - return v; -} diff --git a/challenge-088/conor-hoekstra/ch-01.hs b/challenge-088/conor-hoekstra/ch-01.hs deleted file mode 100644 index 0d862cf94a..0000000000 --- a/challenge-088/conor-hoekstra/ch-01.hs +++ /dev/null @@ -1,7 +0,0 @@ -import Control.Monad (<*>) - -solution = flip (zipWith (div) . repeat) <*> product - --- Tests -solution [5,2,1,4,3] -- [24,60,120,30,40] -solution [2,1,4,3] -- [12,24,6,8] diff --git a/challenge-088/conor-hoekstra/ch-01.ijs b/challenge-088/conor-hoekstra/ch-01.ijs deleted file mode 100644 index e4e66a2009..0000000000 --- a/challenge-088/conor-hoekstra/ch-01.ijs +++ /dev/null @@ -1,4 +0,0 @@ -solution =. %~*/ - -solution 5 2 1 4 3 NB. 24 60 120 30 40 -solution 2 1 4 3 NB. 12 24 6 8 diff --git a/challenge-088/conor-hoekstra/cpp/ch-1.cpp b/challenge-088/conor-hoekstra/cpp/ch-1.cpp new file mode 100644 index 0000000000..722df1bf47 --- /dev/null +++ b/challenge-088/conor-hoekstra/cpp/ch-1.cpp @@ -0,0 +1,12 @@ +// Godbolt Link: https://godbolt.org/z/dGGKzdYhn + +#include +#include +#include +#include + +auto array_product(std::vector v) -> std::vector { + auto const prod = std::accumulate(v.cbegin(), v.cend(), 1, std::multiplies{}); + std::transform(v.cbegin(), v.cend(), v.begin(), [=] (auto e) { return prod / e; }); + return v; +} diff --git a/challenge-088/conor-hoekstra/haskell/ch-1.hs b/challenge-088/conor-hoekstra/haskell/ch-1.hs new file mode 100644 index 0000000000..0d862cf94a --- /dev/null +++ b/challenge-088/conor-hoekstra/haskell/ch-1.hs @@ -0,0 +1,7 @@ +import Control.Monad (<*>) + +solution = flip (zipWith (div) . repeat) <*> product + +-- Tests +solution [5,2,1,4,3] -- [24,60,120,30,40] +solution [2,1,4,3] -- [12,24,6,8] diff --git a/challenge-088/conor-hoekstra/j/ch-1.ijs b/challenge-088/conor-hoekstra/j/ch-1.ijs new file mode 100644 index 0000000000..e4e66a2009 --- /dev/null +++ b/challenge-088/conor-hoekstra/j/ch-1.ijs @@ -0,0 +1,4 @@ +solution =. %~*/ + +solution 5 2 1 4 3 NB. 24 60 120 30 40 +solution 2 1 4 3 NB. 12 24 6 8 -- cgit