aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-04-14 11:34:46 +0100
committerGitHub <noreply@github.com>2024-04-14 11:34:46 +0100
commitb17f00846e519dfde6f39248305b0dc5998c6c34 (patch)
tree413d2a2f457516dfe05093f42fcf7e8a20281b06
parentae9958a344a329144d26e3063d449a4eeafe6b00 (diff)
parentc5c5812f4ae50346374fc157911bb8d9256bfb1f (diff)
downloadperlweeklychallenge-club-b17f00846e519dfde6f39248305b0dc5998c6c34.tar.gz
perlweeklychallenge-club-b17f00846e519dfde6f39248305b0dc5998c6c34.tar.bz2
perlweeklychallenge-club-b17f00846e519dfde6f39248305b0dc5998c6c34.zip
Merge pull request #9917 from asherbhs/challenge-264
Challenge 264 in APL, BQN, Haskell, Hy, J, Raku
-rw-r--r--challenge-264/asherbhs/apl/ch-1.apl5
-rw-r--r--challenge-264/asherbhs/apl/ch-2.apl7
-rw-r--r--challenge-264/asherbhs/bqn/ch-1.bqn5
-rw-r--r--challenge-264/asherbhs/bqn/ch-2.bqn5
-rw-r--r--challenge-264/asherbhs/haskell/ch-1.hs16
-rw-r--r--challenge-264/asherbhs/haskell/ch-2.hs20
-rw-r--r--challenge-264/asherbhs/hy/ch-1.hy20
-rw-r--r--challenge-264/asherbhs/hy/ch-2.hy12
-rw-r--r--challenge-264/asherbhs/j/ch-1.ijs10
-rw-r--r--challenge-264/asherbhs/j/ch-2.ijs7
-rw-r--r--challenge-264/asherbhs/raku/ch-1.raku16
-rw-r--r--challenge-264/asherbhs/raku/ch-2.raku9
12 files changed, 132 insertions, 0 deletions
diff --git a/challenge-264/asherbhs/apl/ch-1.apl b/challenge-264/asherbhs/apl/ch-1.apl
new file mode 100644
index 0000000000..c3d1da9a1c
--- /dev/null
+++ b/challenge-264/asherbhs/apl/ch-1.apl
@@ -0,0 +1,5 @@
+GreatestEnglishLetter←{/⍨∘(⎕IO=⍒)⍨⊃∩/(≥⍥⎕UCS∘'a'(⊂1⎕C⊢)⌸⊢)⍵}
+
+⎕←GreatestEnglishLetter 'PeRlwEeKLy'
+⎕←GreatestEnglishLetter 'ChaLlenge'
+⎕←GreatestEnglishLetter 'The'
diff --git a/challenge-264/asherbhs/apl/ch-2.apl b/challenge-264/asherbhs/apl/ch-2.apl
new file mode 100644
index 0000000000..37c8b4dde4
--- /dev/null
+++ b/challenge-264/asherbhs/apl/ch-2.apl
@@ -0,0 +1,7 @@
+⎕IO←0
+
+TargetArray←{⍺[⍋⍵++/¨⍵≥((1+⍳⍤≢)⊂⍤↓⍤0 1⊢)⍵]}
+
+⎕←0 1 2 3 4 TargetArray 0 1 2 2 1
+⎕←1 2 3 4 0 TargetArray 0 1 2 3 0
+⎕←(,1) TargetArray ,0
diff --git a/challenge-264/asherbhs/bqn/ch-1.bqn b/challenge-264/asherbhs/bqn/ch-1.bqn
new file mode 100644
index 0000000000..1dd6ba1e14
--- /dev/null
+++ b/challenge-264/asherbhs/bqn/ch-1.bqn
@@ -0,0 +1,5 @@
+GreatestEnglishLetter←{(0=⍒)⊸/(∊/⊣)´0‿('a'-'A')-˜≥⟜'a'⊸⊔𝕩}
+
+•Show GreatestEnglishLetter "PeRlwEeKLy"
+•Show GreatestEnglishLetter "ChaLlenge"
+•Show GreatestEnglishLetter "The"
diff --git a/challenge-264/asherbhs/bqn/ch-2.bqn b/challenge-264/asherbhs/bqn/ch-2.bqn
new file mode 100644
index 0000000000..6a89105e5e
--- /dev/null
+++ b/challenge-264/asherbhs/bqn/ch-2.bqn
@@ -0,0 +1,5 @@
+TargetArray←{𝕨⊏˜⍋𝕩++´¨𝕩≥((1+↕∘≠)↓⚇0‿1⊢)𝕩}
+
+•Show 0‿1‿2‿3‿4 TargetArray 0‿1‿2‿2‿1
+•Show 1‿2‿3‿4‿0 TargetArray 0‿1‿2‿3‿0
+•Show ⟨1⟩ TargetArray ⟨0⟩
diff --git a/challenge-264/asherbhs/haskell/ch-1.hs b/challenge-264/asherbhs/haskell/ch-1.hs
new file mode 100644
index 0000000000..d9d33e535c
--- /dev/null
+++ b/challenge-264/asherbhs/haskell/ch-1.hs
@@ -0,0 +1,16 @@
+import Data.List (partition, intersect)
+import Data.Char (isUpper, toUpper)
+
+greatestEnglishLetter :: String -> String
+greatestEnglishLetter str =
+ let
+ (upper, lower) = partition isUpper str
+ letters = intersect upper $ map toUpper lower
+ in
+ if null letters then "" else [maximum letters]
+
+main :: IO ()
+main = do
+ print $ greatestEnglishLetter "PeRlwEeKLy"
+ print $ greatestEnglishLetter "ChaLlenge"
+ print $ greatestEnglishLetter "The"
diff --git a/challenge-264/asherbhs/haskell/ch-2.hs b/challenge-264/asherbhs/haskell/ch-2.hs
new file mode 100644
index 0000000000..42aa6f9f22
--- /dev/null
+++ b/challenge-264/asherbhs/haskell/ch-2.hs
@@ -0,0 +1,20 @@
+import Data.List (sortOn)
+
+targetArray :: [Int] -> [Int] -> [Int]
+targetArray source indices
+ = map fst
+ $ sortOn snd
+ $ zip source
+ $ trueIndices indices
+ where
+ trueIndices :: [Int] -> [Int]
+ trueIndices [] = []
+ trueIndices (i : is)
+ = i + length (filter (i >=) is)
+ : trueIndices is
+
+main :: IO ()
+main = do
+ print $ targetArray [0, 1, 2, 3, 4] [0, 1, 2, 2, 1]
+ print $ targetArray [1, 2, 3, 4, 0] [0, 1, 2, 3, 0]
+ print $ targetArray [1] [0]
diff --git a/challenge-264/asherbhs/hy/ch-1.hy b/challenge-264/asherbhs/hy/ch-1.hy
new file mode 100644
index 0000000000..eb25a69622
--- /dev/null
+++ b/challenge-264/asherbhs/hy/ch-1.hy
@@ -0,0 +1,20 @@
+(import hyrule *)
+
+(defn greatest-english-letter [str] (do
+ (setv
+ upper #{}
+ lower #{}
+ )
+ (for [c str]
+ (if (c.isupper)
+ (upper.add c)
+ (lower.add (c.upper))
+ )
+ )
+ (setv letters (& upper lower))
+ (if letters (max letters) "")
+))
+
+(pprint (greatest-english-letter "PeRlwEeKLy"))
+(pprint (greatest-english-letter "ChaLlenge"))
+(pprint (greatest-english-letter "The"))
diff --git a/challenge-264/asherbhs/hy/ch-2.hy b/challenge-264/asherbhs/hy/ch-2.hy
new file mode 100644
index 0000000000..149fe66c86
--- /dev/null
+++ b/challenge-264/asherbhs/hy/ch-2.hy
@@ -0,0 +1,12 @@
+(import hyrule *)
+
+(defn target-array [source indices] (do
+ (setv target [])
+ (for [[x i] (zip source indices)] (target.insert i x))
+ target
+))
+
+(pprint (target-array [0 1 2 3 4] [0 1 2 2 1]))
+(pprint (target-array [1 2 3 4 0] [0 1 2 3 0]))
+(pprint (target-array [1] [0]))
+
diff --git a/challenge-264/asherbhs/j/ch-1.ijs b/challenge-264/asherbhs/j/ch-1.ijs
new file mode 100644
index 0000000000..837737210c
--- /dev/null
+++ b/challenge-264/asherbhs/j/ch-1.ijs
@@ -0,0 +1,10 @@
+GreatestEnglishLetter=.{{
+ U=:u:^:_1
+ u:(#~0=\:)(e.#[)&:>/(>:&(U'a'){{<('a'-&U'A')(-~^:x)y}}/..])U y
+}}
+
+echo GreatestEnglishLetter 'PeRlwEeKLy'
+echo GreatestEnglishLetter 'ChaLlenge'
+echo GreatestEnglishLetter 'The'
+
+exit ''
diff --git a/challenge-264/asherbhs/j/ch-2.ijs b/challenge-264/asherbhs/j/ch-2.ijs
new file mode 100644
index 0000000000..e5fba06cae
--- /dev/null
+++ b/challenge-264/asherbhs/j/ch-2.ijs
@@ -0,0 +1,7 @@
+TargetArray=.{{x{~/:y++/@>y>:&.>a:,~1}.<\.y}}
+
+echo 0 1 2 3 4 TargetArray 0 1 2 2 1
+echo 1 2 3 4 0 TargetArray 0 1 2 3 0
+echo (,1) TargetArray ,0
+
+exit ''
diff --git a/challenge-264/asherbhs/raku/ch-1.raku b/challenge-264/asherbhs/raku/ch-1.raku
new file mode 100644
index 0000000000..c04b68a116
--- /dev/null
+++ b/challenge-264/asherbhs/raku/ch-1.raku
@@ -0,0 +1,16 @@
+sub greatest-english-letter(Str:D $str --> Str:D) {
+ max $str
+ .comb
+ .classify(
+ so * ~~ /<:Lu>/,
+ as => *.uc,
+ )
+ .values
+ .reduce(&[∩])
+ .keys
+ || ''
+}
+
+say greatest-english-letter 'PeRlwEeKLy';
+say greatest-english-letter 'ChaLlenge';
+say greatest-english-letter 'The';
diff --git a/challenge-264/asherbhs/raku/ch-2.raku b/challenge-264/asherbhs/raku/ch-2.raku
new file mode 100644
index 0000000000..eff31d41e5
--- /dev/null
+++ b/challenge-264/asherbhs/raku/ch-2.raku
@@ -0,0 +1,9 @@
+sub target-array(Int:D @source, Int:D @indices --> Array[Int:D]) {
+ my Int:D @target = [];
+ for @source Z @indices -> ($x, $i) { @target.splice: $i, 0, $x }
+ @target
+}
+
+say target-array Array[Int:D].new(0, 1, 2, 3, 4), Array[Int:D].new(0, 1, 2, 2, 1);
+say target-array Array[Int:D].new(1, 2, 3, 4, 0), Array[Int:D].new(0, 1, 2, 3, 0);
+say target-array Array[Int:D].new(1), Array[Int:D].new(0);