https://learninghub.kx.com/forums/topic/how-to-create-temp-variable-inside
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] $[x~`a;5;x~`b;[y:6*6;$[y<6;6;y>9;10;y]];x]}
q)f {[x] $[x~`a;5;x~`b;[y:6*6;$[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