-
-
Notifications
You must be signed in to change notification settings - Fork 195
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch order of current core exercises #800
Conversation
Although I prefer to discuss a PR using comments on the PR, rather than a linked issue, I think the main objectives I wish to achieve are:
This means that, given the above are followed, I do not appear to have a reason to prefer one of the two choices (discussion in the same PR, discussion in a linked issue) over the other. |
well, I suppose the difference is that I will discuss the intent of the changes in the linked issue, and discuss whether the intent is good. In the PR, I will discuss the mechanics of the change, and whether it actually matches the stated intent. (I still don't mind combining the two discussions into the same place, but for PR where both avenues of discussion may be contentious, then it may be worth separating) For this issue, the mechanics are fairly uncontentious, but just to be thorough, it is possible to verify that this PR does indeed only perform the two reorderings that it claimed to do. diff -u <(ruby ../problem-specifications/tree.rb --flat <(git show master:config.json)) <(ruby ../problem-specifications/tree.rb --flat config.json)
--- /dev/fd/11 2019-03-06 01:05:18.000000000 +0000
+++ /dev/fd/12 2019-03-06 01:05:18.000000000 +0000
@@ -10,12 +10,12 @@
hello-world
leap
space-age
-bob
pangram
+bob
collatz-conjecture
rna-transcription
-sum-of-multiples
nucleotide-count
+sum-of-multiples
grains
[side] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've made it clear already that I approve of the two changes in their current form
I still highly recommend a summary of the rationale for both changes be included in the commit message, so that it is still available without being connected to the internet.
As part of [The Track Anatomy Project][1], the Haskell core track is restructured in #798 using @F3PiX'es multi-stage framework referred to as "The Track Tool". Since The Track Tool is still under development, it isn't documented yet. But the execution of the first step can be viewed for other languages, e.g. exercism/javascript#590. --- Proposal: - Switch "Bob" and "Pangram". They're both about handling textual data. Pangram has fewer gotchas, is quicker done, has more variations among its alternative solutions, and doesn't lend itself as well to `Data.Text`. (See #795.) Bob often involves more refactoring, has more learning objectives and has the extra "You could do it with Data.Text, too!" part. This way people don't try to solve Pangram with Data.Text which is possible but not ideal without mono-traversable, and they get an exercise more under their belt before being thrown into a lot of refactoring. - Switch "Nucleotide Count" and "Sum of Multiples". Eventually I think we should delete "Sum of Multiples" and "Grains" (see #761). But since The Track Tool does not address removal yet, I want to make "Nucleotide Count" come immediately after "RNA Transcription", since they're both thematically related and Nucleotide Count uses Either while RNA Transcription uses Maybe for monadic error handling, so they practice the same thing in progressive difficulty. The proposed track reordering looks like: 1. hello-world 2. leap 3. space-age 4. **pangram** 5. **bob** 6. collatz-conjecture 7. rna-transcription 8. **nucleotide-count** 9. sum-of-multiples 10. grains [1]: https://exercism.io/blog/track-anatomy-project
Hi @petertseng, and thanks for your patience while best I try to place the discussion. I've updated the commit message and the PR message to reflect the specific change.
In retrospect I think I would have preferred to keep all discussion of concrete changes to the PRs and more abstract, high-level discussion at #798. I'm not sure what's least confusing at this point; since some choices are made in a bigger picture, I'd like to go with some division a la mechanics vs. abstract reasons. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I certainly don't object to the whole reasoning being placed in the commit message, so I'm also able to approve this
Edit: As @petertseng points out below, embed the reasons for deciding into the commit message. As a consequence, the pull request message is updated to reflect this change. This change consists of moving the arguments from the discussion at #798 to this message instead.
As part of The Track Anatomy Project, the Haskell core track is
restructured in #798 using @F3PiX'es multi-stage framework referred to
as "The Track Tool".
Since The Track Tool is still under development, it isn't documented
yet. But the execution of the first step can be viewed for other
languages, e.g. exercism/javascript#590.
Proposal:
Switch "Bob" and "Pangram".
They're both about handling textual data.
Pangram has fewer gotchas, is quicker done, has more variations among
its alternative solutions, and doesn't lend itself as well to
Data.Text
.(See pangram 1.4.1.10: Add test case: determine pangram lazily #795.) Bob often involves more refactoring, has more learning
objectives and has the extra "You could do it with Data.Text, too!" part.
This way people don't try to solve Pangram with Data.Text which is possible
but not ideal without mono-traversable, and they get an exercise more under
their belt before being thrown into a lot of refactoring.
Switch "Nucleotide Count" and "Sum of Multiples".
Eventually I think we should delete "Sum of Multiples" and "Grains" (see Replace
Difference Of Squares
andGrains
on the core track #761).But since The Track Tool does not address removal yet, I want to make
"Nucleotide Count" come immediately after "RNA Transcription", since
they're both thematically related and Nucleotide Count uses Either
while RNA Transcription uses Maybe for monadic error handling, so they
practice the same thing in progressive difficulty.
The proposed track reordering looks like: