« first day (865 days earlier)      last day (670 days later) » 

01:46
Just a random idea: would it be too weird to treat -(+) equal to -+?
02:34
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 ?
03:14
I don't know how to read the parse tree either
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.
trains and partial application do not work the same way?
03:42
I think they're the same, -+[1;] gives type error too
One problem would be that ,(+) is a singleton array containing +, which is not possible under the new system
(technically possible via 1#(+;+), but messy)
 
4 hours later…
08:02
k.miraheze.org/wiki/Primitives all symbol primitives from K6-K9 have pages with content now.
2
 
5 hours later…
12:56
@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):
https://ngn.bitbucket.io/k#eJzlUstqwzAQvOsrQigNpLtED8dx3NeHuKKBQCA9+5AS8u/dHcm2EijtqZciZO/O7sxKaA7tue8el0+86tv70/OqPcWLpYc3Y/p9uzve7T5e510XqbOynWx2NPzIa+BpjOVLgSpaI7aSWcmVaUlzXS73sbby0Jt5CnCgpJl44IzMMmeco6nJKakmLzI1uGsnRUehId+AtLFUq/iGeNsQ11qvqBFI9laPXuloPW8FBY8ZTkGrma4U61mBczpzwB19ogdZ6TKMy+EDWlAm44JOszyP8wiP2nrQxpwKcokj3zCJuDTcJv2kq/2DgMoDd1lW2vMp8niNY5wbc1j0e3nq8/Lz/XRZIDMr08UZv8y6aOTZEVkJ3QjCA0gQmcENV9Doi4SOqSlsMgiWZhnnlZ5JoCaZP9kHpQIqB9z4Ca0ljCmlw67m3Jhtqk2Y+YUBwbstQP4nW+aJ37WJxn+0bX7Fv794/AIobAfY
@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 (?)
@coltim (1+) is still `p
I'd personally say that + alone is a train, given that the expression doesn't end with a noun
13:28
@coltim based on this, @Bubbler can save 1 byte with
f:{t@'*<-/t:&x=/:x}0,+\
 
2 hours later…
15:03
@coltim ah, i see.
 
3 hours later…
18:09
@Razetime looking good on the wiki
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")
 
1 hour later…
19:34
@Razetime thanks for doing so much for the wiki it is really great, I'll try and contribute something at some point

« first day (865 days earlier)      last day (670 days later) »