also, ⟨-⟜1 ⋄ +⟜1⟩ for an array of decrement and increment. ⟨-⟜1 +⟜1⟩ is ambiguous - it could be both a single-item vector of an atop, or a 2-element vector
@nathanrogers I can't make sense of this question. Explicit stranding with ‿ still has the problem that you can't strand one item, but it's easy to tell visually whether something is a strand because ‿ is visually distinctive. Implicit stranding, with no marker, is hard to see.
@ngn I'm not exactly a fan of ‿-notation, but the alternatives aren't good (always using ⟨⟩-or-whatever-notation is a lot of overhead, and k-style array tokens and APL strands both make for weird syntactic things)
@dzaima and it's really hard to define stranding as something that happens if and only if it otherwise would be an error. It'd be literally a "try catch" in the spec, and incredibly hard to read
in your model, what would+⟜2 4 be? How about ⟨+⟜2 4⟩?
This is a horrible horrible form of bikeshedding. You are suggesting all sorts of ways to damage the integrity of the language in order to fix some trivial aesthetic issue that you would get used to very quickly if you actually used it.
@nathanrogers and we're answering: 1) it's horrible to parse; 2) it's very ambiguous; 3) it's pointless; 4) it only makes code longer; 5) it's harder to read
@nathanrogers The guiding principle in designing BQN syntax has always been consistency. There shouldn't be special cases, and parallel concepts should have parallel syntax. In practice I find BQN takes far less mental overhead to write than APL or J, even though its syntax tends to be more powerful (list literals and function headers for example).
@nathanrogers streams/pipes - no; currently the only major impls are in Java and JS, both of which don't really interface with C directly; dzaima/BQN has a CLI
@nathanrogers not directly, but I did add a way to load in custom objects/types into dzaima/BQN. The JS one doesn't allow direct access to JS (but you can use BQN from within JS)
however, the c preprocessor is painful to use. so maybe we need a better preprocessor rather than something with inherited types and polymorphism and arcane syntax..