32 lines
1.3 KiB
Markdown
32 lines
1.3 KiB
Markdown
# Hints
|
|
|
|
## General
|
|
|
|
- Read the official documentation for [ranges][range].
|
|
|
|
## 1. Define the rank range
|
|
|
|
- There is a [special operator][range-creation-operator] for creating ranges.
|
|
|
|
## 2. Define the file range
|
|
|
|
- There is a [special operator][range-creation-operator] for creating ranges.
|
|
- There is a [special syntax][unicode-code-points] to write a character code point without explicitly knowing its value.
|
|
|
|
## 3. Transform the rank range into a list of ranks
|
|
|
|
- Ranges implement the `Enumerable` protocol.
|
|
- There is a [built-in function][enum-to-list] to change an enumerable data structure to a list.
|
|
|
|
## 4. Transform the file range into a list of files
|
|
|
|
- Ranges implement the `Enumerable` protocol.
|
|
- There is a [built-in function][enum-map] to change an enumerable data structure to a list while modifying its elements.
|
|
- The [bitstring special form][bitstring-special-form] can be used to turn a code point into a string.
|
|
|
|
[range]: https://hexdocs.pm/elixir/Range.html
|
|
[range-creation-operator]: https://hexdocs.pm/elixir/Kernel.html#../2
|
|
[unicode-code-points]: https://hexdocs.pm/elixir/syntax-reference.html#integers-in-other-bases-and-unicode-code-points
|
|
[enum-to-list]: https://hexdocs.pm/elixir/Enum.html#to_list/1
|
|
[enum-map]: https://hexdocs.pm/elixir/Enum.html#map/2
|
|
[bitstring-special-form]: https://hexdocs.pm/elixir/Kernel.SpecialForms.html#%3C%3C%3E%3E/1 |