@Adám I added "core" and "core dyalog", though I probably labeled as "core" things that aren't actually core, but I guess I'll notice when I add other dialects
oh, also I completely changed the way the list is implemented which meant I had to rewrite every single glyph, and in the move i might have got something wrong
@RubenVerg Looks good. In the quest to preserve horizontal space, maybe abbreviate the types to (Fm) (Fd) (Om) (Od) (A) (S) and/or colour codes — or something similar? Compare with abrudz.github.io/voc
I'd also merge the name and description fields, e.g. "Direction: (Complex) signum"
And there's no need for an "external link" icon for the link. Just make the descriptive text the link.
@Adám some entries (Variant) have more than one link
I think it makes more sense to leave them all in beacuse variant in Dyalog vs variant in NARS2000 are somewhat different, even if grouped in the same cell
@Adám oh, that's pretty! also thanks for making me notice I'm missing & and # and ##
Sure: Join: https://mlochbaum.github.io/BQN/doc/join.html#join "merge array of arrays into single array" Demote: Combine two leading axes Sane Index: Functional form of bracket indexing Interval Index: Determine fitting interval, left argument giving beginning points Key with Vocabulary: Return indices/data* corresponding to locations of elements of the vocabulary Format With Specification†: … of column widths, decimal places, and optionally scientific notation Count In: For each element in left argument, count occurrences in right argument
@RubenVerg Yes.
@RubenVerg That's really up to you. But did you try the Gama version?
@RubenVerg You'll need that for GNU APL anyway.
@RubenVerg The category legends could have check boxes (default: all checked) to filter too.
Btw, you really sholdn't use * for multiplication in your descriptions!
@RubenVerg A similar problem is primitives described in various other texts, but never implemented anywhere. Btw, are you planning on including historical APLs, like Sharp APL and A+?
Examples include ⍩ for Withe and Δ̈ for Domain. The latter isn't even in Unicode.
@Adám great question I don't have an answer to. it was meant to be a list of glyphs + what dialects have them, where historical would make sense, but now it's become just a list of primitives across dialects where maybe it doesn't matter that much what historical apls do
but on the other hand there's some interesting bits of history in historic apls
like, it's probably interesting to see when/where something first appeared
another thing I don't know how to deal with, and is probably somewhat important, is what to do when a primitive is called two names by different dialects, especially for like Under/Dual which as far as i can tell are both common names for the same thing
@Adám intention was to include them
what can circle-times functions be called?
"polar" and "unit polar"?
@Adám thanks! I'll add these
the split between key data and key indices is monadic/dyadic call, right?
@RubenVerg Yes, it appears so. The idea is simple enough. The type of chars is ' ' so essentially we have ' '< meaning visible, ' '≥ invisible, ' '≤ printable etc.
@RubenVerg You could decide that it is APL\360 and simply go by its docs.
@RubenVerg You could possibly introduce negative pills "but not A+" or simply decided that whatever your baseline core is, e.g. APL\360, anything that conflicts isn't "APL" and so isn't in scope of Omnibar.
a+ has some interesting stuff (Cast) I'd be sad to exclude
I kinda want to split ⍳-scalar and ⍳-vector (maybe even splitting ⍳-nested and ⍳-flat) but I don't know how to write descriptions that are different enough
same problem for other primitives, like ⍸-boolean and ⍸-natural
also I think currently Partition and Partitioned Enclose have the same description, any ideas how to describe them in different ways?
@Adám thanks, I'll check that out
@Adám wow, apl\360 has way fewer things than I imagined
though for the names I guess "Where" and "Where (Natural)" or something is fine, I already do "Key (Values)" and "Key (Indices)" which I don't like but couldn't come up with anything better
okay pretend there's a dialect that only has Where (Boolean). should Dyalog be listed in the where boolean entry (since its Where fits the description) or only in the where natural entry?
APL2 isn't fully backwards compatible with APL\360. In the latter, 10 20 30[2] gives 20 while the former gives a RANK ERROR and requires (10 20 30)[2]. APL+ (old mode) and Dyalog both follow APL\360.
I'm starting to think colors for the different parts of speech aren't that helpful, maybe I'll add a short version of the name ("M"/"D"/"A"/"C"/"H"/"S") after the meaning name
That'd be a mixture of terminology. APLers tend to use "monadic/dyadic operator". Anyway, for operators, you also need to specify "deriving monadic/dyadic function".
You could use outline shapes to indicate type. Similarly to how I do in the game Runemaster: Functions have round upper corners, with sharp corners on the bottom of sides where they take arguments. Operators have sharp upper corners where they take operands.
Arrays would of course be rounded on all corners. That leaves only hyperator(— no s, so far) and syntax to need special indication. The latter could just be no outline, and the former maybe a double outline.
I would have expected something like APL\360 for "core APL", probably safe to bump that up to APL.SV. Current version has a lot of newer stuff, like ∘ for After/Bind was introduced by NARS and I think it's still not in GNU APL.
SV has more. 360 was continuously adding things though, so SV is more like a new version of it than a new dialect, but IBM stopped adding so many primitives around that time.
There was a big 3-ish way split in the early 80s, between SHARP, APL2, and NARS. NARS was only an experiment but Dyalog took a lot of features from it, partly because APL2 hadn't been finalized yet. And Dyalog wasn't popular either, until the 90s. So it's made the NARS family dominant but it wasn't always that way.
Filtering by "A and not B" would be particularly useful here, because you can see for example "what new stuff do I get by switching from Dyalog to dzaima/APL?". Maybe even to the point where one include dropdown (current thing) and one exclude is enough to avoid wanting a query syntax.
I'm in such conflict about the glyph for that. ⊇ is a really good fit (as an inverse of partition, kinship to A+'s glyph, it is a form of disclosing) but I really feel like ⊇ for Last too.
Another one would be ⍷ since it is like a lesser form of Enlist ∊ but then I feel like using that for Element Type, as carrying over the old ∊. I really dislike ⊤ for Type.