diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2024-10-09 13:26:28 -0400 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2024-10-09 13:26:28 -0400 |
| commit | 074cf22ad462eafe963e4a749b2b74cab51211a1 (patch) | |
| tree | e1d7f938f2d949cc5dcf67ca648f200663e36562 /examples/vectors | |
| parent | 47fca946065508cff4151a32b3008c161983fd9d (diff) | |
Change function syntax from `func(args)->ret` to `func(args -> ret)`
Diffstat (limited to 'examples/vectors')
| -rw-r--r-- | examples/vectors/vectors.tm | 84 |
1 files changed, 42 insertions, 42 deletions
diff --git a/examples/vectors/vectors.tm b/examples/vectors/vectors.tm index 8560f9df..696bef1e 100644 --- a/examples/vectors/vectors.tm +++ b/examples/vectors/vectors.tm @@ -2,32 +2,32 @@ struct Vec2(x,y:Num): ZERO := Vec2(0, 0) - func plus(a,b:Vec2; inline)->Vec2: + func plus(a,b:Vec2->Vec2; inline): return Vec2(a.x+b.x, a.y+b.y) - func minus(a,b:Vec2; inline)->Vec2: + func minus(a,b:Vec2->Vec2; inline): return Vec2(a.x-b.x, a.y-b.y) - func times(a,b:Vec2; inline)->Vec2: + func times(a,b:Vec2->Vec2; inline): return Vec2(a.x*b.x, a.y*b.y) - func dot(a,b:Vec2; inline)->Num: + func dot(a,b:Vec2->Num; inline): return (a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y) - func cross(a,b:Vec2; inline)->Num: + func cross(a,b:Vec2->Num; inline): return a.x*b.y - a.y*b.x - func scaled_by(v:Vec2, k:Num; inline)->Vec2: + func scaled_by(v:Vec2, k:Num->Vec2; inline): return Vec2(v.x*k, v.y*k) - func divided_by(v:Vec2, divisor:Num; inline)->Vec2: + func divided_by(v:Vec2, divisor:Num->Vec2; inline): return Vec2(v.x/divisor, v.y/divisor) - func length(v:Vec2; inline)->Num: + func length(v:Vec2->Num; inline): return (v.x*v.x + v.y*v.y):sqrt() - func dist(a,b:Vec2; inline)->Num: + func dist(a,b:Vec2->Num; inline): return a:minus(b):length() - func angle(v:Vec2; inline)->Num: + func angle(v:Vec2->Num; inline): return Num.atan2(v.y, v.x) - func norm(v:Vec2; inline)->Vec2: + func norm(v:Vec2->Vec2; inline): if v.x == 0 and v.y == 0: return v len := v:length() return Vec2(v.x/len, v.y/len) - func mix(a,b:Vec2, amount:Num)->Vec2: + func mix(a,b:Vec2, amount:Num -> Vec2): return Vec2( amount:mix(a.x, b.x), amount:mix(a.y, b.y), @@ -35,30 +35,30 @@ struct Vec2(x,y:Num): struct Vec3(x,y,z:Num): ZERO := Vec3(0, 0, 0) - func plus(a,b:Vec3; inline)->Vec3: + func plus(a,b:Vec3->Vec3; inline): return Vec3(a.x+b.x, a.y+b.y, a.z+b.z) - func minus(a,b:Vec3; inline)->Vec3: + func minus(a,b:Vec3->Vec3; inline): return Vec3(a.x-b.x, a.y-b.y, a.z-b.z) - func times(a,b:Vec3; inline)->Vec3: + func times(a,b:Vec3->Vec3; inline): return Vec3(a.x*b.x, a.y*b.y, a.z*b.z) - func dot(a,b:Vec3; inline)->Num: + func dot(a,b:Vec3->Num; inline): return (a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y) + (a.z-b.z)*(a.z-b.z) - func cross(a,b:Vec3; inline)->Vec3: + func cross(a,b:Vec3->Vec3; inline): return Vec3(a.y*b.z - a.z-b.y, a.z*b.x - a.x*b.z, a.x*b.y - a.y*b.x) - func scaled_by(v:Vec3, k:Num; inline)->Vec3: + func scaled_by(v:Vec3, k:Num->Vec3; inline): return Vec3(v.x*k, v.y*k, v.z*k) - func divided_by(v:Vec3, divisor:Num; inline)->Vec3: + func divided_by(v:Vec3, divisor:Num->Vec3; inline): return Vec3(v.x/divisor, v.y/divisor, v.z/divisor) - func length(v:Vec3; inline)->Num: + func length(v:Vec3->Num; inline): return (v.x*v.x + v.y*v.y + v.z*v.z):sqrt() - func dist(a,b:Vec3; inline)->Num: + func dist(a,b:Vec3->Num; inline): return a:minus(b):length() - func norm(v:Vec3; inline)->Vec3: + func norm(v:Vec3->Vec3; inline): if v.x == 0 and v.y == 0 and v.z == 0: return v len := v:length() return Vec3(v.x/len, v.y/len, v.z/len) - func mix(a,b:Vec3, amount:Num)->Vec3: + func mix(a,b:Vec3, amount:Num -> Vec3): return Vec3( amount:mix(a.x, b.x), amount:mix(a.y, b.y), @@ -68,46 +68,46 @@ struct Vec3(x,y,z:Num): struct IVec2(x,y:Int): ZERO := IVec2(0, 0) - func plus(a,b:IVec2; inline)->IVec2: + func plus(a,b:IVec2->IVec2; inline): return IVec2(a.x+b.x, a.y+b.y) - func minus(a,b:IVec2; inline)->IVec2: + func minus(a,b:IVec2->IVec2; inline): return IVec2(a.x-b.x, a.y-b.y) - func times(a,b:IVec2; inline)->IVec2: + func times(a,b:IVec2->IVec2; inline): return IVec2(a.x*b.x, a.y*b.y) - func dot(a,b:IVec2; inline)->Int: + func dot(a,b:IVec2->Int; inline): return (a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y) - func cross(a,b:IVec2; inline)->Int: + func cross(a,b:IVec2->Int; inline): return a.x*b.y - a.y*b.x - func scaled_by(v:IVec2, k:Int; inline)->IVec2: + func scaled_by(v:IVec2, k:Int->IVec2; inline): return IVec2(v.x*k, v.y*k) - func divided_by(v:IVec2, divisor:Int; inline)->IVec2: + func divided_by(v:IVec2, divisor:Int->IVec2; inline): return IVec2(v.x/divisor, v.y/divisor) - func length(v:IVec2; inline)->Num: + func length(v:IVec2->Num; inline): return Num.sqrt(v.x*v.x + v.y*v.y) - func dist(a,b:IVec2; inline)->Num: + func dist(a,b:IVec2->Num; inline): return a:minus(b):length() - func angle(v:IVec2; inline)->Num: + func angle(v:IVec2->Num; inline): return Num.atan2(v.y, v.x) struct IVec3(x,y,z:Int): ZERO := IVec3(0, 0, 0) - func plus(a,b:IVec3; inline)->IVec3: + func plus(a,b:IVec3->IVec3; inline): return IVec3(a.x+b.x, a.y+b.y, a.z+b.z) - func minus(a,b:IVec3; inline)->IVec3: + func minus(a,b:IVec3->IVec3; inline): return IVec3(a.x-b.x, a.y-b.y, a.z-b.z) - func times(a,b:IVec3; inline)->IVec3: + func times(a,b:IVec3->IVec3; inline): return IVec3(a.x*b.x, a.y*b.y, a.z*b.z) - func dot(a,b:IVec3; inline)->Int: + func dot(a,b:IVec3->Int; inline): return (a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y) + (a.z-b.z)*(a.z-b.z) - func cross(a,b:IVec3; inline)->IVec3: + func cross(a,b:IVec3->IVec3; inline): return IVec3(a.y*b.z - a.z-b.y, a.z*b.x - a.x*b.z, a.x*b.y - a.y*b.x) - func scaled_by(v:IVec3, k:Int; inline)->IVec3: + func scaled_by(v:IVec3, k:Int->IVec3; inline): return IVec3(v.x*k, v.y*k, v.z*k) - func divided_by(v:IVec3, divisor:Int; inline)->IVec3: + func divided_by(v:IVec3, divisor:Int->IVec3; inline): return IVec3(v.x/divisor, v.y/divisor, v.z/divisor) - func length(v:IVec3; inline)->Num: + func length(v:IVec3->Num; inline): return Num.sqrt(v.x*v.x + v.y*v.y + v.z*v.z) - func dist(a,b:IVec3; inline)->Num: + func dist(a,b:IVec3->Num; inline): return a:minus(b):length() func main(): |
