As part of the ongoing redesign, I'd like to optimize if and if else operations. This is also discussed in #27 and there is some good guidance there.
A logical tree should be able to express something like "If volume is above 100, price squared over 200, else short / 300." In a poorly-rendered tree structure that looks like:
IF
> / /
vol 100 ** 200 short 300
price 2
As I see it, there ought to be three classes of nodes: operators, terminals and booleans(new). In addition to arity, different types of nodes now specify that their children be a certain class.
As part of the ongoing redesign, I'd like to optimize
if
andif else
operations. This is also discussed in #27 and there is some good guidance there.A logical tree should be able to express something like "If volume is above 100, price squared over 200, else short / 300." In a poorly-rendered tree structure that looks like:
As I see it, there ought to be three classes of nodes:
operators
,terminals
andbooleans
(new). In addition to arity, different types of nodes now specify that their children be a certain class.+, -, *, /, **
IF, IFELSE
==, !=, >, <, >=, <=
AND, OR, NOT
a, b, c
1, 2, 3