34 lines
722 B
Text
34 lines
722 B
Text
class List {
|
|
class Element (public data) {
|
|
public var next = null
|
|
}
|
|
var start = null
|
|
|
|
public function insert (data) {
|
|
var element = new Element (data)
|
|
element.next = start
|
|
start = element
|
|
}
|
|
|
|
public operator foreach (var iter) {
|
|
if (typeof(iter) == "none") { // first iteration
|
|
iter = start
|
|
return iter.data
|
|
} elif (iter.next == null) { // check for last iteration
|
|
iter = none
|
|
} else {
|
|
iter = iter.next // somewhere in the middle
|
|
return iter.data
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
var list = new List()
|
|
list.insert (1)
|
|
list.insert (2)
|
|
list.insert (4)
|
|
|
|
foreach n list {
|
|
println (n)
|
|
}
|