Planet JFX

This is a simple example about using functions as parameters.

function reduce(f: function(Number,Number):Number, list: Number[], nilArg: Number):Number {
    if( list == [] ) then
        nilArg
    else
        f( list[0], reduce(f, list[x|indexof x > 0], nilArg))
}

function sum( x: Number, y: Number ): Number { x + y }

function product( x: Number, y: Number ): Number {x * y }

def list : Number[] = [1,2,3,4];

function p( s: String ) { println( s ); }

p("# sum     : {reduce(sum,list,0)}");
p("# product : {reduce(product,list,1)}");