exercism / exercism/elixir

Implement new Concept Exercise: `dynamic-dispatch`

Aperta
#558 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub
concept-exercise v3 x:action/create x:knowledge/intermediate x:module/concept-exercise x:size/large x:type/content
Lingua principale
Elixir
Stelle
664
Fork
416
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

## 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:

- [The features of v3](https://github.com/exercism/v3/blob/master/docs/features-of-v3.md).
- [Rationale for v3](https://github.com/exercism/v3/blob/master/docs/rationale-for-v3.md).
- [What are concept exercise and how they are structured?](https://github.com/exercism/v3/blob/master/docs/concept-exercises.md)

## Goal

The goal of this exercise is to replace `rpn-calculator-output` as the exercise that teaches dynamic dispatch (https://elixir-lang.org/getting-started/typespecs-and-behaviours.html#dynamic-dispatch). `rpn-calculator-output` should be modified to depend on `dynamic-dispatch` instead of teaching it. Make sure to reuse part of that exercise's introduction.

## Learning objectives

- Know that you module names are just atoms
- Know that you can call a function on a module even if its stored in a variable
- `apply`
- Know how to concatenate module names? e.g. https://hexdocs.pm/elixir/Module.html#safe_concat/1

## Out of scope

?

## Concepts

- `dynamic-dispatch`

## Prerequisites

Depends on the story.

## Exercises

Add `dynamic-dispatch` as a prerequisite of `forth`.

## Resources to refer to

https://elixir-lang.org/getting-started/typespecs-and-behaviours.html#dynamic-dispatch

## Implementing

Since dynamic dispatch depends on the existence of a few modules with the same function, we might want to provide that in the boilerplate instead of having the student implement those too.

## Help

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

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.