Ton of work on closures, getting very close. Have the extra types and the promotion and calling all worked out. Now only the actual closure part of the struct needs to be done

This commit is contained in:
Nathan Braswell committed 2015-06-25 04:09:19 -04:00
1 parent 5d688a5822
commit 542821dd81
8 files changed
+264 -98

No files matched your search

+19 -16
View File
@@ -4,26 +4,29 @@ fun runLambda(func: fun():int):void {
println(func())
}
fun callLambda(func: fun(int):void):void {
func(10)
}
fun somethingElse():int { return 4; }
fun itr<T>(it: T, func: fun(T):T):T {
println(it)
return func(it);
}
//fun callLambda(func: fun(int):void):void {
//func(10)
//}
//fun itr<T>(it: T, func: fun(T):T):T {
//println(it)
//return func(it);
//}
fun main():int {
var func = fun():void { println("8"); }
func()
runLambda(fun():int { return 9;})
callLambda(fun(a:int):void { println(a);})
var j = 0
while (j < 10) j = itr(j, fun(a:int):int { return a+1; })
//var func = fun():void { println("8"); }
//func()
//runLambda(fun():int { return 9;})
//callLambda(fun(a:int):void { println(a);})
//var j = 0
//while (j < 10) j = itr(j, fun(a:int):int { return a+1; })
//println("closures now")
//var a = 1337
//runLambda(fun():int { return a;})
runLambda(somethingElse)
println("closures now")
var a = 1337
runLambda(fun():int { return a;})
return 0
}