exercism / exercism/clojure

[v3] Implement new Concept Exercise: Character types

Aperta
#313 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Clojure
Stelle
176
Fork
159
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

This issue describes how to implement the `Character types` 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:

- [The features of v3](https://github.com/exercism/v3/blob/master/docs/concept-exercises.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/features-of-v3.md)

## Goal

The goal of this exercise is to teach the student how character types are implemented in Clojure. According to the [official guide](https://clojure.org/guides/learn/syntax) this includes 3 main types: _strings_, _characters_ and _regular expressions_.

## Things to teach

This exercise aims to teach the student:

- Clojure strings are Java strings - eg. they are _immutable_
- Contained in double quotes
- Individual characters represented w/ leading backslash `\`
- Special characters (\newline \spec \tab, etc.)
- Unicode characters (\uNNNN or in octal with \oNNN)
- Literal regex syntax - `#"[0-9]+"`

## Things not to teach

Things outside the scope of this exercise are:

- Advanced regex usage

## Concepts

This exercise teaches the following concepts:

- `char`
- `string`
- `regular_expression`

## Prerequisites

This is a base-level concept and likewise only assumes general knowledge of English letters.

## Resources to refer to

### Hints

- [Syntax guide](https://clojure.org/guides/learn/syntax)

### After

- [java.util.regex.pattern](https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html)
- [Clojure reference](https://clojure.org/reference/reader)
- [Java escape sequences](https://docs.oracle.com/javase/tutorial/java/data/characters.html)
## Representer

This exercise does not require any modifications to the track's representer.

## Analyzer

This exercise does not require any special analysis to be added for it.

## Implementing

To implement a concept exercise, the following files must be created:

```
languages
└── clojure
└── exercises
└── concept
└──
├── .docs
| ├── instructions.md
| ├── introduction.md
| ├── hints.md
| └── after.md (optional)
├── .meta
| |── design.md
| └── Example.clj
├── .clj
└── _test.clj
```

## Help

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

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.