summaryrefslogtreecommitdiff
path: root/test/custiter.myr
blob: ef440512e50568051353a28048d344e05aed137e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use std

type range = struct
	lo	: int
	hi	: int
;;

/* iterate up to 100 */
impl iterable range -> int =
        __iternext__ = {rng, output
		if rng.lo > rng.hi
			-> false
		else
			output# = rng.lo++
                        -> true
                ;;
        }

        __iterfin__ = {it, val
        }
;;

const main = {
	var r : range
	var x : int

	r = [.lo=6, .hi=11]
	for v : r
		x = v
                std.put("{}", x)
        ;;
	std.put("\n")
}