Skip to main content

Right hand side vs. Left hand side

\*\*What*What\*\*: Different sides to an operator e.g. == \*\*Why*Why\*\*: Proper treatment of the sides of an operator e.g. == results in much functionality \*\*Time To Complete*Complete\*\*: 3 hours

.left and .right

In Free Form Programming Language (ff) the dot operator, namely the dot on your keyboard, allows for accessing parts of an expression!

For a given equation e.g. eq, in the ff program below, the lhs or x^2-1+y can be accessed by the expression eq.left and a/b+c by the expression eq.right.

eq = (x^2-1+y == a/b+c);

lhs = eq.left;

show lhs;

rhs = eq.right;

show rhs;

save as lhsrhs

Output

"lhs" → -1 + x^2 + y

"rhs" → a/b + c


The programmer is not required to use a symbol e.g. eq for this . access, as long as using the ( ) operator the results would be the same:

tmp = (x^2-1+y == a/b+c).left;

show tmp;

save as lhsrhs;

Output

"tmp" → -1 + x^2 + y


In Free Form Programming Language (ff), the Symbol ⊕ is one of several unassigned operators.

As you can see the . operator works perfectly even if the operator in use is not defined! This is a core language aspect of ff that allows undefined variables as well as undefined functions and undefined operators alike.

eq = (x^2-1+y)  ⊕  (a/b+c);

lhs = eq.left;

show lhs;

rhs = eq.right;

show rhs;

save as lhsrhs;

Output

"lhs" → -1 + x^2 + y

"rhs" → a/b + c


Try different operators.

eq = (x^2-1+y)  <=  (a/b+c);

lhs = eq.left;

show lhs;

rhs = eq.right;

show rhs;

save as lhsrhs;

Output

"lhs" → -1 + x^2 + y

"rhs" → a/b + c