diff options
| author | Lucas Ransan <lucas@ransan.tk> | 2021-07-15 11:52:13 +0200 |
|---|---|---|
| committer | Lucas Ransan <lucas@ransan.tk> | 2021-07-15 14:26:22 +0200 |
| commit | f32ac270c4b0cb654afd623f5e0e37bf61f7f27c (patch) | |
| tree | 6daa82b2af9684f34bf66340abdac07320c27fd6 | |
| parent | 262314e6f2e38d22bf756d8edac7fbcc5af52e25 (diff) | |
| download | perlweeklychallenge-club-f32ac270c4b0cb654afd623f5e0e37bf61f7f27c.tar.gz perlweeklychallenge-club-f32ac270c4b0cb654afd623f5e0e37bf61f7f27c.tar.bz2 perlweeklychallenge-club-f32ac270c4b0cb654afd623f5e0e37bf61f7f27c.zip | |
Miranda week 121 task 1
| -rwxr-xr-x | challenge-121/luc65r/miranda/ch-1.m | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/challenge-121/luc65r/miranda/ch-1.m b/challenge-121/luc65r/miranda/ch-1.m new file mode 100755 index 0000000000..1cc4ab9794 --- /dev/null +++ b/challenge-121/luc65r/miranda/ch-1.m @@ -0,0 +1,18 @@ +#!/usr/bin/env -S mira -exec + +main = ((++ "\n") . show . frombase2 . modify (1 -) n . tobase2) m + where + m = numval ($* ! 1) + n = numval ($* ! 2) - 1 + +tobase2 :: num -> [num] +tobase2 = map (mod 2) . takewhile (~= 0) . iterate (div 2) + +frombase2 :: [num] -> num +frombase2 = foldl1 ((+) . (2 *)) . reverse + +modify :: (* -> *) -> num -> [*] -> [*] +modify op n l = map2 f (index l) l + where + f i = op, if i == n + = id, otherwise |
