[v3] Implement new Concept Exercise: generics
- Dominant language
- Swift
- Stars
- 122
- Forks
- 165
- PR merge metrics
- No merged PRs in 30d
Description
This issue describes how to implement the generics concept exercise for the Swift track.
## 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 the following documents:
- [The features of v3][docs-features-of-v3].
- [Rationale for v3][docs-rationale-for-v3].
- [What are concept exercises and how are they structured?][docs-concept-exercises]
Please also watch the following video:
- [The Anatomy of a Concept Exercise][anatomy-of-a-concept-exercise].
## Goal
This concept exercise should convey a basic understanding of how to use generics in Swift.
## Things to teach
- What are generics used for
- Generic functions
- Type parameters
- Defining Generic types
- Extending generic types
## Things not to teach
- Type constraints
- Associated types
- Generic `where` clauses
## Concepts
- `generics`
## Prerequisites
- `functions`
- `structs-and-classes`
## Resources to refer to
### Hints
- [Generic functions][generic-functions]
- [Type parameters][generic-type-parameteers]
- [Generic types][generic-types]
- [Extending generic types][generic-type-extensions]
### After
- [Generic functions][generic-functions]
- [Type parameters][generic-type-parameteers]
- [Generic types][generic-types]
- [Extending generic types][generic-type-extensions]
## Representer
TBD
## Analyzer
TBD
## Implementing
See [the Swift track implementation guide][swift-implementing-concept-exercises] for guidance.
## Help
If you have any questions while implementing the exercise, please post the questions as comments in this issue.
[swift-implementing-concept-exercises]: https://github.com/wneumann/v3/blob/master/languages/swift/reference/implementing-a-concept-exercise.md
[generic-functions]: https://docs.swift.org/swift-book/LanguageGuide/Generics.html#ID181
[generic-type-parameteers]: https://docs.swift.org/swift-book/LanguageGuide/Generics.html#ID182
[generic-types]: https://docs.swift.org/swift-book/LanguageGuide/Generics.html#ID184
[generic-type-extensions]: https://docs.swift.org/swift-book/LanguageGuide/Generics.html#ID185
[docs-concept-exercises]: ../../../docs/concept-exercises.md
[docs-rationale-for-v3]: ../../../docs/rationale-for-v3.md
[docs-features-of-v3]: ../../../docs/features-of-v3.md
[anatomy-of-a-concept-exercise]: https://www.youtube.com/watch?v=gkbBqd7hPrA
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.