Select featured exercises for Slimline September

Next month (September), will have the Slimline September theme, which will feature six languages:

  • 8th
  • AWK
  • Bash
  • JQ
  • Perl
  • Raku

Ideally, we’d select some exercises for which very concise solutions exist, to showcase the conciseness of these languages.

This is the list of the shared exercises for those tracks, excluding hello-world and any previously featured exercises (It is likely that we’ll need some exercises to be added):

exercise 8th awk bash jq perl5 raku
gigasecond :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
atbash-cipher :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
affine-cipher :white_check_mark: :white_check_mark: :white_check_mark: :x: :x: :white_check_mark:
all-your-base :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark:
darts :x: :white_check_mark: :white_check_mark: :white_check_mark: :x: :white_check_mark:
grains :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark:
luhn :white_check_mark: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark:
meetup :x: :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
nucleotide-count :x: :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
queen-attack :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark:
series :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark:
wordy :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark:
beer-song :x: :white_check_mark: :white_check_mark: :white_check_mark: :x: :x:
clock :x: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark:
crypto-square :x: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark:
diamond :x: :white_check_mark: :white_check_mark: :x: :x: :white_check_mark:
forth :x: :white_check_mark: :white_check_mark: :white_check_mark: :x: :x:
grade-school :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark:
house :x: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark:
kindergarten-garden :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :x:
knapsack :x: :white_check_mark: :white_check_mark: :white_check_mark: :x: :x:
matrix :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark:
nth-prime :x: :white_check_mark: :white_check_mark: :white_check_mark: :x: :x:
ocr-numbers :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :x:
pascals-triangle :x: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark:
pig-latin :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :x:
prime-factors :x: :white_check_mark: :white_check_mark: :x: :x: :white_check_mark:
proverb :x: :x: :white_check_mark: :white_check_mark: :white_check_mark: :x:
pythagorean-triplet :x: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark:
resistor-color-duo :x: :white_check_mark: :white_check_mark: :white_check_mark: :x: :x:
resistor-color-trio :x: :white_check_mark: :white_check_mark: :white_check_mark: :x: :x:
run-length-encoding :x: :white_check_mark: :white_check_mark: :white_check_mark: :x: :x:
say :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :x:
square-root :x: :x: :white_check_mark: :white_check_mark: :x: :white_check_mark:
sublist :x: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark:
transpose :x: :x: :white_check_mark: :white_check_mark: :x: :white_check_mark:
two-bucket :x: :white_check_mark: :white_check_mark: :white_check_mark: :x: :x:
accumulate :x: :x: :x: :x: :white_check_mark: :white_check_mark:
binary-search-tree :x: :x: :x: :x: :white_check_mark: :white_check_mark:
bottle-song :x: :x: :x: :x: :white_check_mark: :white_check_mark:
change :x: :white_check_mark: :white_check_mark: :x: :x: :x:
food-chain :x: :x: :white_check_mark: :x: :white_check_mark: :x:
grep :x: :white_check_mark: :white_check_mark: :x: :x: :x:
isbn-verifier :x: :x: :white_check_mark: :x: :x: :white_check_mark:
palindrome-products :x: :x: :white_check_mark: :x: :white_check_mark: :x:
rectangles :x: :white_check_mark: :white_check_mark: :x: :x: :x:
resistor-color :x: :x: :x: :white_check_mark: :x: :white_check_mark:
rotational-cipher :x: :white_check_mark: :white_check_mark: :x: :x: :x:
satellite :x: :x: :white_check_mark: :white_check_mark: :x: :x:
strain :x: :x: :x: :x: :white_check_mark: :white_check_mark:
tournament :x: :white_check_mark: :white_check_mark: :x: :x: :x:
twelve-days :x: :x: :white_check_mark: :x: :white_check_mark: :x:
variable-length-quantity :x: :white_check_mark: :white_check_mark: :x: :x: :x:
automated-readability-index :x: :white_check_mark: :x: :x: :x: :x:
book-store :x: :x: :x: :x: :x: :white_check_mark:
bowling :x: :x: :white_check_mark: :x: :x: :x:
custom-set :x: :x: :x: :x: :white_check_mark: :x:
diffie-hellman :x: :x: :white_check_mark: :x: :x: :x:
dnd-character :x: :x: :white_check_mark: :x: :x: :x:
error-handling :x: :x: :white_check_mark: :x: :x: :x:
flatten-array :x: :x: :x: :x: :x: :white_check_mark:
killer-sudoku-helper :x: :x: :x: :x: :x: :white_check_mark:
markdown :x: :x: :white_check_mark: :x: :x: :x:
perfect-numbers :x: :x: :white_check_mark: :x: :x: :x:
poker :x: :x: :white_check_mark: :x: :x: :x:
rail-fence-cipher :x: :x: :white_check_mark: :x: :x: :x:
rational-numbers :x: :x: :white_check_mark: :x: :x: :x:
simple-cipher :x: :x: :white_check_mark: :x: :x: :x:
spiral-matrix :x: :x: :white_check_mark: :x: :x: :x:
trinary :white_check_mark: :x: :x: :x: :x: :x:
zebra-puzzle :x: :x: :x: :white_check_mark: :x: :x:

Or exercises that have several separate parts, to showcase the conciseness of these languages. Like bob, and all-your-base, and perhaps nucleotide-count (depending on approach).

I imagine flatten-array could be really nice in jq.

bob has already been used unfortunately. flatten-array could be nice in all languages I think.

I’ve looked at some of the example solutions, and what about these exercises:

  • atbash-cipher
  • darts
  • flatten-array
  • run-length-encoding
  • series

They’re not the hardest exercises and allow for fairly concise solutions.

bash doesn’t support nested arrays, so the flatten exercise is not applicable. Maybe custom-set instead?

Does awk support nested arrays?

gawk does: Arrays of Arrays (The GNU Awk User’s Guide)

Ah, let’s try another exercise then (I’m not a fan of custom set, but let’s see if there is an alternative)

How about strain then? It’s array-related, and not as heavy as list-ops.

I like it. It feels very Slimline September-y

I’ve just re-ran the query and I think some changes need to be made, as the previous selection did not include any 8th exercise at all, which is unlikely to change I assume. Any objections to this list?

exercise 8th awk bash jq perl raku
gigasecond :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :x: :white_check_mark:
atbash-cipher :x: :white_check_mark: :white_check_mark: :white_check_mark: :x: :white_check_mark:
darts :x: :white_check_mark: :white_check_mark: :white_check_mark: :x: :white_check_mark:
luhn :white_check_mark: :x: :white_check_mark: :x: :x: :white_check_mark:
series :x: :white_check_mark: :white_check_mark: :x: :x: :white_check_mark:

We then have at least two 8th exercises, and darts might be do-able to port. I think porting the five Raku exercises to Perl should also be relatively straightforward, is that correct @m-dango?

@axtens Would you have any time porting darts, atbash-ciper and/or series to 8th?

It would be great of people could help port exercises to have as many of them available. Please post here if you want to port an exercise.

As we’re filming soon, the above list is the definitive list. We have 6 days to add some of the missing implementations.

Well give it a shot. I think someone did the atbash a while ago and i didn’t get around to putting it up

1 Like

Thanks! It would be great to have some more 8th.

Draft PR for Luhn in jq:

1 Like

Thanks a ton! I’ve requested a review from Isaac and Glenn

I’ll pick up Luhn for awk

1 Like

I can attempt jq Series.

1 Like

Only darts needs porting, I think having perl instead of perl5 here meant the exercises weren’t picked up!

1 Like