johannes avatar johannes committed c6c7be8 Draft

Split into two files, since new operators can't be used in the file that defines them

Comments (0)

Files changed (2)

+# this file depends on vector3.io having being loaded before
+
+a := Vector3 make (1, -2,  3);
+b := Vector3 make (4,  5, -6);
+
+dotproduct   := a ⋅ b
+crossproduct := a ⨯ b
+
+dotproduct   println
+crossproduct println
+#!/usr/bin/env io
 # Make a 3d-vector class
 Vector3 := Object clone;
 Vector3 make := method(x, y, z,
 OperatorTable addOperator("⋅", 2)
 OperatorTable addOperator("⨯", 2)
 
-# Test it
-a := Vector3 make (1, -2,  3);
-b := Vector3 make (4,  5, -6);
-
-dotproduct   := a ⋅ b
-crossproduct := a ⨯ b
-
-dotproduct   println
-crossproduct println
-
+# Test case needs to be in a different file, since tokenizing
+# happened before ⋅ and ⨯ were operators.
+doFile("test.io")
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.