comparison 2-Io/day2-operators.io @ 37:86668d32e162

Add Day 2 code
author IBBoard <dev@ibboard.co.uk>
date Tue, 12 Sep 2017 20:58:51 +0100
parents
children
comparison
equal deleted inserted replaced
36:15eb99e79dd4 37:86668d32e162
1 # Operators are syntactic sugar and can be listed from a table:
2 OperatorTable println
3
4 # Creating an operator involves defining it with a precedence
5 # (index based on the output from the previous table)
6 OperatorTable addOperator("xor", 11)
7
8 # And then implementing it on appropriate prototypes
9 # Note that Io is open-edit, like Ruby, so we can screw with core stuff
10 # like Booleans and extend them
11 true xor := method(bool, if(bool, false, true))
12 false xor := method(bool, if(bool, true, false))
13
14 # For some reason I have to work out, the prints don't work here
15 # They print the second value. But running in REPL works and return correct
16 # value (before printing wrong one)
17 (true xor true) println
18 (true xor false) println
19 (false xor true) println
20 (false xor false) println
21