-
-
Notifications
You must be signed in to change notification settings - Fork 157
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
In exercises/concept/functions-generating-functions/, added: #591
base: main
Are you sure you want to change the base?
Conversation
.docs/instructions.md .docs/introduction.md .meta/exemplar.clj
Hello. Thanks for opening a PR on Exercism 🙂 We ask that all changes to Exercism are discussed on our Community Forum before being opened on GitHub. To enforce this, we automatically close all PRs that are submitted. That doesn't mean your PR is rejected but that we want the initial discussion about it to happen on our forum where a wide range of key contributors across the Exercism ecosystem can weigh in. You can use this link to copy this into a new topic on the forum. If we decide the PR is appropriate, we'll reopen it and continue with it, so please don't delete your local branch. If you're interested in learning more about this auto-responder, please read this blog post. Note: If this PR has been pre-approved, please link back to this PR on the forum thread and a maintainer or staff member will reopen it. |
I like what you've done. I'm just a little bit concerned because we haven't taught map/reduce yet (or hashmaps for that matter!). If it weren't for this issue, I'd say it would fit perfectly, but it would leave the uninitiated student needing to learn these concepts elsewhere. |
You're right @bobbicodes. Maybe we could just avoid suggesting to use |
@bobbicodes, on the other hand, I didn't fully understand the difficulty you mentioned about adding a concept for map and another for reduce. From what I know (very little, but something), adding basic information about map, for example, should be pretty straightforward: one or two sentences. Also, since it is not a complicated concept (at least not in how it's used most of the time), with just one or two exercises might be enough? Reduce, on the other hand, seems to have more use cases (but maybe just as juxt, since you even dedicated a blog to it?). However, I would dedicate multiple concepts that have a hierarchy of difficulty, something like this: graph TD;
A{basic reduce} --> B{advanced reduce 1};
A{basic reduce} --> C{advanced reduce 2};
Unless you have something more elaborate in mind, I could volunteer on creating a basic concept for map, another for reduce, and then one or two concept exercises for each. I think I have bandwidth for doing that. If it needs to be more exhaustive / elaborate then I would need to wait until later in the future... please let me know! Thanks, Jaume |
Map and reduce are high priority and would be a welcome addition, as they form the cornerstone of functional programming. I'm unlikely to contribute them myself because I've been busy working on other things lately, so if you were so inclined that would be wonderful :) As far as this exercise goes, my gut reaction is that if it could be made simpler it would be more effective, in other words not requiring any additional strategies. Would that even be possible, or would it make the exercise fall apart? It's an almost obligatory suggestion because the learning exercises are meant to be just on the edge of being excessively simple, and when they are not, well that's when we start to receive feedback from frustrated students. Of course if it were added after introducing other concepts it might be fine, because then it would only be introducing one new thing at a time. |
Thanks @bobbicodes. If I understand correctly, I could first add map and reduce, and then we could have the current PR approved because solving the exercise would be much easier after map and reduce are in the track, is that correct? If you think I can submit a really simple explanation, one for map, and the other for reduce, and then submit a "concept exercise" for each one with just one or two tasks in the exercise, then I can certainly do it! Another possibility is to have a single concept exercise for both, and in that exercise we can have 3 tasks: one for using map alone, one for using reduce alone, and one for using both map and reduce in the same function... |
Yeah, my most recent thoughts were to expand the syllabus significantly by taking a much simpler approach and making the exercises smaller, just like you're saying. More like along the lines of 4clojure or the Clojure Koans where it's right to the point and not trying to be an elaborate coding challenge. I even thought to take problems right from 4clojure, because it's pretty comprehensive and the original authors have passed it on to the community, making them fair game. They have the additional bonus of already being set up as unit tests, albeit very simple ones. For example, see the exercise teaching |
That would be great, do you think then that we could be using the exercises from 4clojure directly? That would be a very fast way to cover many concepts. |
Yeah, that's what I'm thinking! It's proven pedagogically sound, the problems were taken from various sources like Project Euler and Ninety-Nine Lisp Problems and organized into a well-ordered system, then a couple years ago the authors decided to let the domain expire. They said it had become outdated and they were no longer interested in maintaining it. It was revived as 4everClojure by the community but they have no ownership of the problem set, and I think it would be quite appropriate for them to be inherited by Exercism in some form. |
Looking up 4clojure, I just read the list of websites dedicated to practicing clojure, in the practical.li site... so many nice possibilities! |
.docs/instructions.md
.docs/introduction.md
.meta/exemplar.clj