[v3] Implement new Concept Exercise: `Higher-order functions`
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 38/100
Research direction
Start by reading docs/features-of-v3.md, docs/rationale-for-v3.md, and docs/concept-exercises.md, then review the JavaScript elyses-transformative-enchantments exercise and the linked Clojure guide. Create the specified .docs, .meta, source, and test files under languages/clojure/exercises/concept/; done means the exercise teaches the listed higher-order-function objectives and its tests and metadata follow the v3 structure.
Written by the indexing model from the issue text.
Description
This issue describes how to implement the Higher-order functions concept exercise for the Clojure 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 up on the following documents:
Please also watch the following video:
Goal
The goal of this exercise is to teach the student how to use higher-order functions in Clojure.
It can be a simple port of elyses-transformative-enchantments from the JavaScript Track.
Learning objectives
The student will gain a general understanding of:
- First Class Functions
- Functions that take one or more functions as arguments
- Functions that return a function as its result
Out of scope
- This is a general overview of the concept, not in-depth usage of specific functions.
Concepts
higher-order-functions
Prerequisites
basics
Resources to refer to
Clojure guide - Higher Order Functions
Representer
The Clojure Representer is currently being implemented and contributions are welcome.
Analyzer
The Clojure Analyzer is currently being implemented and contributions are welcome.
Implementing
To implement a concept exercise, the following files must be created:
languages
└── clojure
└── exercises
└── concept
└── <SLUG>
├── .docs
| ├── instructions.md
| ├── introduction.md
| ├── hints.md
| └── after.md (optional)
├── .meta
| |── design.md
| └── Example.clj
├── <NAME>.clj
└── <NAME>_test.clj
Help
If you have any questions while implementing the exercise, please post the questions as comments in this issue.
- Dominant language
- Clojure
- Stars
- 177
- Forks
- 159
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from exercism/clojure
-
exercism/clojure#821 · 1 comment · 1 reaction · 1 assignee ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
Difficulty 4/5 3-5 days Newbie friendliness 20/100
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
All issues in exercism/clojure
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
clojure-lsp/clojure-lsp#2469 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
-
.Team/Metabot Priority:P3
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
needs triage
Difficulty 1/5 Under an hour Newbie friendliness 90/100