diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-04-14 11:34:46 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-14 11:34:46 +0100 |
| commit | b17f00846e519dfde6f39248305b0dc5998c6c34 (patch) | |
| tree | 413d2a2f457516dfe05093f42fcf7e8a20281b06 | |
| parent | ae9958a344a329144d26e3063d449a4eeafe6b00 (diff) | |
| parent | c5c5812f4ae50346374fc157911bb8d9256bfb1f (diff) | |
| download | perlweeklychallenge-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.apl | 5 | ||||
| -rw-r--r-- | challenge-264/asherbhs/apl/ch-2.apl | 7 | ||||
| -rw-r--r-- | challenge-264/asherbhs/bqn/ch-1.bqn | 5 | ||||
| -rw-r--r-- | challenge-264/asherbhs/bqn/ch-2.bqn | 5 | ||||
| -rw-r--r-- | challenge-264/asherbhs/haskell/ch-1.hs | 16 | ||||
| -rw-r--r-- | challenge-264/asherbhs/haskell/ch-2.hs | 20 | ||||
| -rw-r--r-- | challenge-264/asherbhs/hy/ch-1.hy | 20 | ||||
| -rw-r--r-- | challenge-264/asherbhs/hy/ch-2.hy | 12 | ||||
| -rw-r--r-- | challenge-264/asherbhs/j/ch-1.ijs | 10 | ||||
| -rw-r--r-- | challenge-264/asherbhs/j/ch-2.ijs | 7 | ||||
| -rw-r--r-- | challenge-264/asherbhs/raku/ch-1.raku | 16 | ||||
| -rw-r--r-- | challenge-264/asherbhs/raku/ch-2.raku | 9 |
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); |
