exercism / bash

Exercism exercises in Bash.
https://exercism.org/tracks/bash
MIT License
105 stars 87 forks source link

Foregone exercises #665

Closed glennj closed 9 months ago

glennj commented 9 months ago

The foregone list in the track config.json is current unset.

Suggested list of bash exercises to forego

  1. alphabetics
  2. bank-account
  3. binary-search-tree
  4. book-store
  5. circular-buffer
  6. complex-numbers
  7. connect
  8. custom-set
  9. diffie-hellman
  10. dominoes
  11. dot-dsl
  12. etl
  13. flatten-array
  14. go-counting
  15. grade-school
  16. hangman
  17. high-scores
  18. killer-sudoku-helper
  19. ledger
  20. lens-person
  21. linked-list
  22. matrix
  23. micro-blog
  24. paasio
  25. parallel-letter-frequency
  26. pov
  27. react
  28. rest-api
  29. robot-name
  30. saddle-points
  31. sgf-parsing
  32. simple-linked-list
  33. state-of-tic-tac-toe
  34. strain
  35. tree-building
  36. word-search
  37. zebra-puzzle
  38. zipper
glennj commented 9 months ago

Currently implemented but deprecated

  1. beer-song
  2. diffie-hellman

Do we want to remove and forego these?

glennj commented 9 months ago

That would leave as merely unimplemented:

  1. bottle-song
  2. minesweeper
IsaacG commented 9 months ago

Currently implemented but deprecated

  1. beer-song
  2. diffie-hellman

Do we want to remove and forego these?

Happy to remove them if they are deprecated. I don't think they need to be marked as foregone if they are deprecated, though.

IsaacG commented 9 months ago

I didn't think about them too hard but these may be viable:

glennj commented 9 months ago

You'll have to convince me about hangman. Its description talks about "functional reactive programming". I ignored that in Tcl and went with creating a TCP server to receive guesses. But I don't see ATM what approach to take to test a bash implementation.

glennj commented 9 months ago

I don't think they need to be marked as foregone if they are deprecated, though.

Otherwise they'll just show up as "not yet implemented". IMO foregoing is the maintainer's way of saying "we thought about it and decided not to".

IsaacG commented 9 months ago

You'll have to convince me about hangman. Its description talks about "functional reactive programming". I ignored that in Tcl and went with creating a TCP server to receive guesses. But I don't see ATM what approach to take to test a bash implementation.

I could be mistaken but I think most tracks ignore that bit and treat it as a regular functional assignment that stores state via a class or something.

glennj commented 9 months ago

From what I can tell with my GitHub search-fu: java, C#, F#, OCaml are FRP exercises; python and Powershell are simpler OO exercises; Tcl is an event-based exercise; no other tracks.

But I can now picture what we might want to do: launch the program with the word, and send guesses on stdin

bash hangman.sh puppy << GUESSES
p
a
r
t
y
o
n
w
a
y
n
e
GUESSES

would output something like

9 p P_PP_
8 a P_PP_
7 r P_PP_
6 t P_PP_
6 y P_PPY
5 o P_PPY
4 n P_PPY
3 w P_PPY
2 a P_PPY
1 n P_PPY
0 e P_PPY lose
IsaacG commented 9 months ago

We could also pass in info using $1 vs other args and/or exported env vars.

glennj commented 9 months ago

That would leave as merely unimplemented:

  1. bottle-song
  2. minesweeper

I forgot to mention

  1. resistor-color

Not sure why we have -duo and -trio but not the original.

kotp commented 9 months ago
  • hangman

I was about to respond the same about hangman. Seems like a fairly good fit, reminds me of early days learning to write programs late at night when I was supposed to be sleeping, for my younger sister learning to spell and read.