/* * Main.fx * * Created on Dec 14, 2009, 1:12:05 PM */ package javafxapplication9; import java.lang.Object; public class STree { public var root: STreeNode; public var value: function(object: Object): Object; public var nodes: function(object: Object): Object[]; public var create: function(object: Object): STreeNode = function (object: Object): STreeNode { return STreeNode { value: value(object) nodes: for (node in nodes(object)) create(node) }; } } public class STreeNode { public var value: Object; public var nodes: STreeNode[]; public var handle: function(handler: function(value: Object)) = function(handler: function(value: Object)) { handler(value); for (node in nodes){ node.handle(handler); } } }