- The label
name
in the generated JSON is synchronized with thedescription
in canonical-data.json. - The use of helper files is simplified:
- Order and task_id information will not be stored if it’s not necessary.
- All file handling is now done in the test runner (previously, files were created by the test.ijs file in the solution and deleted either by the test runner or by the JE).
Tomorrow i’ll start to work on new exercises. I’ll try to catch the 48in24 calendar in next three or four weeks.
My list now is:
- spiral-matrix — (Trying to find purely functional solution for this exercise F# who got me into J)
- pangram
- all-your-base — Maybe
- Trivial solution but can be used to introduce some primitives:
- Solution can be constructed with combinations of
#.
,#:
,p.
andwhile.
.
- Solution can be constructed with combinations of
- Possible work around the need of three inputs:
- Make it an adverb? which value
u
? - Make it a conjunction?
u
andv
are the bases. - Boxed input containing the bases as left argument?
- Boxed input containing the digits and base as right argument?
- Make it an adverb? which value
- Trivial solution but can be used to introduce some primitives:
- zebra-puzzle —
Maybe
- minesweeper
- dnd-character
- pig-latin —
Maybe
- Can’t think any of a solution not using REGEX whitouth going into extra verbosity
- space-age
- yacht
- matching-brackets
rna-transcription—Done
- binary-search —
Probably not
- If you need to implemt this you would go for another language
- secret-handshake —
Maybe
- Almost trivial solution
- Probably as a concept using gerunds
- anagram
- Also trivial
- Can be an introduction to indexings
- kindergarten-garden
- robot-simulator
- knapsack
- meetup
Next, my intent is to also include some easier exercises tied to concepts (like leap
, collatz
, raindrop
) and adapt the concept exercises from the F# track.
Just to be clear, I would suggest to focus on just getting those initial 20+ practice exercises done just to be able to launch the track. After that, porting concept exercises sounds great!
Add the exercises:
- leap
- collatz-conjecture
- spiral-matrix
- pangram
- raindrops
and updates current exercises
Nucleotide-count and collatz-conjecture are marked as "wip’ because i am not sure on how to treat the cases where an error is expected. I did not find a way to make the verbs to produce a domain error
without calling the foreign 13!:8(45)
.
The track has now 12 exercises (10 of them completed).
If some tests cases don’t make sense for your exercise, feel free to ignore them (best to add include = false
in their tests.toml
entry). Not all test cases make sense for a track, so feel free to ignore those.
In my view, these exercises necessitate a specific type of error—specifically, a domain error—rather than a general one.
To provoke this specific error, I utilize the 13!:8
debug foreign function. However, a newcomers probably will not encounter this function before a considerable period of time.
Considering these factors, I have reservations about including the error check, as it could potentially transform straightforward exercises into more challenging ones.
An option would be to include a note specifying that the function should return empty
for illegal values. This mirrors the way the Haskell track handles some similat situations by returning Nothing
That’s also an option. But you should feel free to omit the test cases and only have error checking for later exercises
Add exercises:
- space-age
- dnd-character
- yacht
About the error cases, I think I found a good middle-ground solution. For the currently implemented exercises that deal with error cases, I am making the tests pass if the solution returns empty
or the proper error for the exercise. Later, I try to fit the information about the error return could fit at the intructions as an extra option.
This week, I intend to meet the 20-exercise cap and then take a deeper look at the documentation. I’ll probably add some snippet examples to the instructions for exercises with multiple inputs too.
Reviewed. Just one tiny nit.
Sorry, I just accepted the changes
Adds the exercises:
- handshake,
- anagram,
- matching-brackets, and
- pig-latin
with those we meet the 20-exercise cap.
*At the weekend i will review the docs as said earlier this week.
Add instructions.append.md in some tracks
Update docs
Minor correction on exercises
@ErikSchierboom
Can you check if those files LICENSE
and Makefile
are correct?
later today i will make a post (similiar to that one by @axtens: Euphoria track pre launch ) to gather external feedback from the community.
Where do I see those in the PR?
I did not change them now. I just want to know if there is something to do with before lauch.
The LICENSE is the right one. As for the Makefile, I don’t know if it is used
- Add files to the github action for testing
- Correct tests behaviour when an atom is expected and the solution returns
empty
@ErikSchierboom
I could not make the github action for test works properly, Could you please review it and see if I’ve made any mistakes?
@andradefr8 The test script was missing the executable bit. I’ve fixed it in: GitHub Actions Testing Files and Bug Fixes by eNascimento178 · Pull Request #97 · exercism/j · GitHub
Other than that, nice work! I’ve approved
I believe that with this PR i completed all steps listed here necessary for lauch.
If there is something else, let me know.
I’ve made this post to try get other reviews about.