Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/planetis-m/looper
For loop macros for Nim
https://github.com/planetis-m/looper
Last synced: 3 months ago
JSON representation
For loop macros for Nim
- Host: GitHub
- URL: https://github.com/planetis-m/looper
- Owner: planetis-m
- License: other
- Created: 2019-10-08T17:25:31.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2020-11-28T17:43:33.000Z (almost 4 years ago)
- Last Synced: 2024-07-29T00:46:28.660Z (3 months ago)
- Language: Nim
- Size: 9.77 KB
- Stars: 7
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: copying.txt
Awesome Lists containing this project
- awesome-nim - looper - For loop macros for Nim. (Language Features / Iteration)
README
# Looper — for loop macros for Nim
## About
This nimble package contains ``for`` loop macros. This is an expiremental Nim future.
They work like inline iterators - only called from ``for`` loops.### The `zip` macro
```nim
import looper
let
a = [1, 3, 5, 7]
b = @[0, 2, 4, 6, 8]
c = @["one", "two", "three", "four", "five"]# It supports variadic arguments of different types,
# each container type must support indexingfor (x, y, z) in zip(a, b, c):
echo x, " ", y, " ", z# Also written as:
for x, y, z in zip(a, b, c):
echo x, " ", y, " ", z# This is supported too:
for w in zip(a, b, c):
echo w
```### The `enumerate` macro
```nim
import looper
let
a = [1, 3, 5, 7]for (i, x) in enumerate(a.iter):
echo i, " ", x# Also written as:
for i, x in enumerate(a.iter):
echo i, " ", x
```### Known quirks
- Nested tuple unpacking ``for (i, (x, y)) in enumerate(iterable)`` is invalid syntax
you have to write ``for i, (x, y) in enumerate(iterable)`` instead.- The enumerate macros doesn't support tuples: ``for w in enumerate(iterable)`` this is because of
the way it is implemented.### License
This library is distributed under the MIT license. For more information see `copying.txt`.