KX Community

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

Home Forums kdb+ Why does @ need :: and why does . need () in amend? Re: Why does @ need :: and why does . need () in amend?

  • gyorokpeter-kx

    Member
    January 30, 2023 at 12:00 am

    The binary form of . is not exactly the same as the 3 or 4 parameter version. The handling of () is special, as it’s equivalent to list[] instead of list . ().

    For list @ :: , this is not the correct syntax for what you want to do as :: is being parsed as a binary operator missing its right argument. If you write it as list @ (::) it works.

    list @ enlist[::] is something else: note that here the index is a list, not a single element, therefore the result will be a list as well, meaning it’s actually enlist[list] – while this looks like the original list in the printout, if you check the type of the result you will notice that they are different.