Skip to content
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

Implement new Concept Exercise: with #560

Closed
angelikatyborska opened this issue Jan 28, 2021 · 7 comments
Closed

Implement new Concept Exercise: with #560

angelikatyborska opened this issue Jan 28, 2021 · 7 comments
Assignees
Labels
concept-exercise Adding or improving a concept exercise help wanted 🤝 v3 Related to Exercism v3 x:action/create Work on something from scratch x:knowledge/intermediate Quite a bit of Exercism knowledge required x:module/concept-exercise Work on Concept Exercises x:size/large Large amount of work x:status/claimed Someone is working on this issue x:type/content Work on content (e.g. exercises, concepts)

Comments

@angelikatyborska
Copy link
Member

angelikatyborska commented Jan 28, 2021

Getting started

Please please please read the docs before starting. Posting PRs without reading these docs will be a lot more frustrating for you during the review cycle, and exhaust Exercism's maintainers' time. So, before diving into the implementation, please read up on the following documents:

Goal

The goal of this exercise is to teach the student how the with special form works and when it is appropriate to use (e.g. to avoid nested cases)

Learning objectives

  • Know how to use with to chain matching clauses
  • Know how to use the else block in with to match on different kinds of errors
  • Know when not to use with

Out of scope

?

Concepts

  • with

Prerequisites

  • errors (the with special form is most commonly used with error/ok-tuples and the exercise should teach that)
  • pattern-matching
  • other, depending on the story

Exercises

Maybe sgf-parsing could have with in its requirements?

Resources to refer to

Analyzer

It will be necessary to use the analyzer to check that the with form was indeed used, and that no alternatives (e.g. cases) were used.

Help

If you have any questions while implementing the exercise, please post the questions as comments in this issue.

@ThiagosLima
Copy link

Hi, I am still learning Elixir and want to help with some issues in the future. But for now, I have just a comment.

This Analyzer part that assure students use the correct function could be added in some exercises. Like Strain exercise which it is not supposed to use filter and reject. And the Accumulate exercise that it is note supposed to use collect, map or fmap.

I don't know if it is already done in the v3. By the way, nice work with the Elixir track. It is really good!

@neenjaw
Copy link
Contributor

neenjaw commented Jun 2, 2021

@ThiagosLima thanks for the comment!! Glad to have you here! Yes, that is the eventual goal to add this functionality to practice exercises at some point too. :)

If you want to open an issue in our analyzer repo. Would help us to keep track of that: https://github.com/exercism/elixir-analyzer

@ThiagosLima
Copy link

Thanks! @neenjaw that is nice! I didn't know about the analyzer repo haha! Sorry. I will add the issues for the exercises that I saw.

@angelikatyborska angelikatyborska added x:action/create Work on something from scratch x:knowledge/intermediate Quite a bit of Exercism knowledge required x:module/concept Work on Concepts x:module/concept-exercise Work on Concept Exercises x:size/massive Massive amount of work x:type/content Work on content (e.g. exercises, concepts) x:size/large Large amount of work and removed x:module/concept Work on Concepts x:size/massive Massive amount of work labels Jun 11, 2021
@jersearls
Copy link

Howdy! I'm interested in building this exercise out. Is anyone actively working on it? @angelikatyborska

@angelikatyborska
Copy link
Member Author

@jersearls We might have one other person interested but they're only starting to learn how to build concept exercises, so it's unclear. I consider this issue available until a get a draft PR from anyone with at least an example solution (<exercise-name>/.meta/exemplar.ex) which is usually the first step for building those exercises (maybe together with the tests).

@papey
Copy link

papey commented Sep 15, 2021

@jersearls We might have one other person interested but they're only starting to learn how to build concept exercises, so it's unclear. I consider this issue available until a get a draft PR from anyone with at least an example solution (<exercise-name>/.meta/exemplar.ex) which is usually the first step for building those exercises (maybe together with the tests).

yay, it's me 😄

@jersearls feel free to start working on it since I have to learn a bunch of things in the process you might be faster than me.

@angelikatyborska angelikatyborska changed the title [v3] Implement new Concept Exercise: with Implement new Concept Exercise: with Sep 28, 2021
@jiegillet jiegillet self-assigned this Oct 12, 2021
@angelikatyborska angelikatyborska added the x:status/claimed Someone is working on this issue label Oct 13, 2021
@jiegillet
Copy link
Contributor

Closed via #954.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
concept-exercise Adding or improving a concept exercise help wanted 🤝 v3 Related to Exercism v3 x:action/create Work on something from scratch x:knowledge/intermediate Quite a bit of Exercism knowledge required x:module/concept-exercise Work on Concept Exercises x:size/large Large amount of work x:status/claimed Someone is working on this issue x:type/content Work on content (e.g. exercises, concepts)
Projects
None yet
Development

No branches or pull requests

6 participants