Home › Forums › kdb+ › Why does @ need :: and why does . need () in amend? › Re: Why does @ need :: and why does . need () in amend?
-
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.