123456789101112131415161718192021222324252627 | extern sqrt(n:Num):Num
def sqr(self:Num):Num = self*self
x := 5.
s := x|sqr
say "$x|sqr = $s"
s |= sqr
say "$x|sqr|sqr = $s"
struct Vec{x:Num,y:Num}
def len(v:Vec):Num
l := sqrt(v.x*v.x + v.y*v.y)
return l
v := Vec{1., 1.}
say "$v|len = $(v|len)"
say "$v|len|sqr = $(v | len | sqr)"
def add(v:Vec, other:Vec):Vec
return Vec{v.x + other.x, v.y + other.y}
say "$v|add(Vec{10.,10.}) = $(v | add(Vec{10., 10.}))"
v |= add Vec{100.,100.}
say "$v|=... = $v"
|