set left to right value. then zero the right value
set right to left value. then zero the left value
Move-left. add right value into left var. then zero right var
Move-right. subtract left value from right var. then zero left var
Remove-left. subtract right value from left var. then zero right var
Remove-right. move left value into right var. then zero left var
sub right from left and add left to right. Simultaneous actions.
sub left from right and add right to left. Simultaneous actions.
add R to L. subtract L from R twice. simultaneous
L = L + R. R = R * L - L. All ops use the original var values
L = L exp R divides R + R aka.L=(R/(L^R))+R.... R = R * L - L
ops are 'loaded with values then pushed into the vars' so they execute 'outside inwards'
if( ){ }
ifn( ){ }
iff( ){ }
iffn( ){ }
full page desc content
Varset defined
we only define the case of a single varset per expression, and it causes both sides to be fully evaluated before the varset
weird cases are undefined for now. like multiple varsets per expression, or varsets inside of brackets.
Now that we have varset to contrast with equals, should add examples to clarify that using equals alone outside for execution is "a description/statement/explanation, not an action". it is kind of implied from this point on by the way they are used. but should probably try to establish it strongly and explicitly at this point in the flow.
todo
more examples of variable setters
add a version of varset where there is a center braketed or bin sring. that means the the center value is applied to both sides (eg "v1 < sub : 3 : add > v2" = "sub 3 from v1 and add 3 to v2" )
add expression vars
add examples where more than 2 vars are involved, a center expression that can be applied in different ways to many variable (eg value 3 can applied in different ways to many different variables with many varset arrows all originating form the same central bracket each with different operators.) *not sure if i will include that in this version
_img webs_001.jpg img_
_img webs_002.jpg img_
but this is definitely something to flesh out later. time time time.. so much to do, so little time.
might need to redefine the way operators are written into the operator line. Probably need 'top-bottom' orientation of the operator symbol to become relative to reading direction. (place your perspective inside the line at the midpoint (:) then flow to each side and treat left and right as absolute 'up/down'
procedural intro
variable setting, if conditionals, sequential operations
We now have varset so we can distinguish between statements of x is equal to y and instructions of set x to be y. so we don't need to rely on bracketing and subsets to show the results of variable actions.
IF evaluates the raw result of conditional
IFF (if false) inverts the conditional evaluation
yes, there is redundancy
it is a byproduct lower level design
it allows us to connect multiple outputs to a single conditional (can connect both result cases , it allows adding an else)
you can also consider it as optional ways to offer different contextual emphasis
if and iffn both do the same
*show*
:> <: :: varset :> <: , swap :: swap var values
addleft :: add right to left , addright :: add left to right
subleft :: subtract right from left , subright :: subtract left from right
moveleft :: set left to right value. then zero the right value
moveright :: set right to left value. then zero the left value
moveintoleft :: Move-left. add right value into left var. then zero right var
moveintoright :: Move-right. subtract left value from right var. then zero left var
removefromleft :: Remove-left. subtract right value from left var. then zero right var
removefromright :: Remove-right. move left value into right var. then zero left var
subleftaddright :: sub right from left and add left to right. Simultaneous actions.
addleftsubright :: sub left from right and add right to left. Simultaneous actions.
addleftsubsubright :: add R to L. subtract L from R twice. simultaneous
addleftmultsubright :: L = L + R. R = R * L - L. All ops use the original var values
expdivaddleftmultsubright :: L = L exp R divides R + R aka.L=(R/(L^R))+R.... R = R * L - L
_1 :: ops are 'loaded with values then pushed into the vars' so they execute 'outside inwards'
if( _20 v_25 .. _10 v_25 ) :: if( ){ } , ifn( _20 v_25 .. _10 v_25 ) :: ifn( ){ }
iff( _20 v_25 .. _10 v_25 ) :: iff( ){ } , iffn( _20 v_25 .. _10 v_25 ) :: iffn( ){ }