KX Community

Find answers, ask questions, and connect with our KX Community around the world.
KX Community Guidelines

Home Forums kdb+ how to create temp variable inside $[] Re: how to create temp variable inside $[]

  • davidcrossey

    Member
    April 14, 2022 at 12:00 am

    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, 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