Home › Forums › kdb+ › how to create temp variable inside $[] › Re: how to create temp variable inside $[]
-
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