let me know if my question is out of line. i have very limited knowledge of the subject. whats the difference between -(+) -+, if you say they are not equal at the current state? i assume they parse differently, so could you explain it a bit more?
the parsing shows a difference of 4: , https://ngn.bitbucket.io/k#eJxLKHBQ0tVW4koA0RramkpcACjUA74= , can you tell me the meaning of it ?
but the difference between -+ and -(+) is this: -+ is parsed as a train as a whole, being a dyadic function acting like {-x+y}. For -(+), (+) is parsed as its own train, which is treated as a noun for parsing, and then that train is passed to monadic - (negate), but a function cannot be negated, so it is a type error.
@Bubbler hmm, my understanding of (+) is that it's not a train, but instead a noun/data version of the + verb/function (which is required for some things like f#x or f . x). that being said you can "call"/execute a noun/data version by tacking on a @ or . at the end, e.g. f:-(+).;f 2 3
@Bubbler lot of fun/useful snippets here! playing around with it I couldn't come up with anything shorter, but this was somewhat novel to me (specifically, the t[;t:...] part working):
@Razetime they have different types (`p for projection, `q for composition). one factor may be that you can have a function projection with >1 unfilled args (like if your function takes 4 args and only two are fixed), but a composition will only have one missing arg (?)
you might want to specially discuss how some of the arithmetic operators work for dictionaries e.g. [a:1;b:2;c:3]*[b:10;d:99]
for "reshape", most dialects have a way to do a "wildcard" reshape e.g 0N 2#x
"find"s result has had different interpretations across dialects. in k6, a failure to find an item gives you a null. In k2/k3 you instead get one past the last index of the list you're searching in. This is very useful for the "change of base" idiom to allow for providing a "default value": x@y?z
I'm not sure select/by/from/where should be considered "named primitives"; they're special syntactic forms, somewhat like :[;;...] / $[;;...]
"random" could use more detail for its other forms; in oK there's picking from a list ( 10?"ABC") and dealing without replacement (-5?"ABCDE")