deimos-lang/sketching/april_2025/iterator.dm

15 lines
463 B
Plaintext

pub type Iterator<T> |backing: &Any| = mut fn () -> Option<&T ref backing>
pub int Iterable<T> {
ref fn iterator() -> Iterator<T>(&self)
}
fn main() {
let nums: List<Int> = [1, 2, 3]
let iterator: Iterator<Int> |backing = nums| = nums.iterator()
let first: &Int ref nums = iterator().unwrap()
let second: &Int ref nums = iterator().unwrap()
let third: &Int ref nums = iterator().unwrap()
println "${*first}, ${*second}, ${*third}"
}