class Point{ fcn init(_x,_y){ var[const] x=_x, y=_y; } fcn distance(p){ (p.x-x).hypot(p.y-y) } fcn toString { String("Point(",x,",",y,")") } } // find closest two points using brute ugly force: // find all combinations of two points, measure distance, pick smallest fcn closestPoints(points){ pairs:=Utils.Helpers.pickNFrom(2,points); triples:=pairs.apply(fcn([(p1,p2)]){ T(p1,p2,p1.distance(p2)) }); triples.reduce(fcn([(_,_,d1)]p1,[(_,_,d2)]p2){ if(d1 < d2) p1 else p2 }); }