if i use $ for if how can i add temp variable there? my understanding is it is either condition or the return value. so how can i put the below logic into this? suppose i have only input x and the if else logic below.
$[x=`a;5; ?]
if x = ‘a’ return 5
if x=‘b’
y = x*x +5
if( y > 6 ) return 6
if(y>9) return 10
You can do something like the following:
q)f:{ $[x~a;5;x~
b;[y:66;$[y<6;6;y>9;10;y]];x]} q)f {[x] $[x~a;5;x~
b;[y:66;$[y<6;6;y>9;10;y]];x]} q)f a 5 q)f
b 10
I would use a function (as above) or a lambda (anonymous function), that way your temp variable will only remain for the scope of the function i.e. in the example above, y does not exist in my global namespace after execution. You can read more about conditional scope here
You can see if x is b in the above we have square brackets which defines a contained block of code to run if the statement is true. See more here
Please find more on the extended if-else / switch statement here