shithub: mc

ref: e6811668a36f0bfaa6abe113bc25ed99473f8973
dir: /test/custiter.myr/

View raw version
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")
}