@cannadayr Maybe, although my concept of Seeds was more about how to implement than what to implement. I'll definitely keep writing about why I made certain choices in BQN. Maybe there could also be some structured discussion that's dedicated to design at some point.
"Can't return from inner functions" - i don't think i've ever needed this. But if it's really needed i'd prefer either operators or proper control structures
"Tacit and one-line functions are hard to debug" - with bytecode a char-by-char debugger should be possible?
@dzaima In BQN you can do things like lists of functions as switch/case statements that makes it seem more important. The reason I'm leaning away from control structures is that the function replacements are more flexible. They just have the return problem.
also, if going with {x ∇ y; x-y} for defining a header for a dfn, how about allowing multiple - {x∇y → x-y ⋄ ∇y → 0-y}? (with this → is more logical than ;)
@Adám probably not in BQN, but in APL i guess it'd be the implementers choice
@Marshall "Comparison tolerance" - i think there really only needs to be one thing about it - an equality checker with an epsilon arg (that's 3 args though, unfortunately)
"Inverse is not fully specified" - i actually really like relying on it, and at least the way i implemented it in dzaima/APL it's very well-defined (aka each function can define it to be whatever it wants ¯\_(ツ)_/¯)
"Rank/Depth negative zero" - dzaima/APL separates 0 and ¯0 (they equal one another, but still are different) so when i finish implementing ⍥ i'll definitely make ¯0 work :p
"Must read the body to find explicit definition's type" - again, dfn headers (i think allowing no headers is still good, maybe not for operators)
@Daneolog For general discussions on code golf, the Nineteenth Byte is the right room. This room is dedicated the practical APL programming language, both when used for golfing, and when not.
Say I have an operator _T expecting a single character on the left and an operator _S_ expecting on the left and right things of the form 'x'_T
And I want to apply _T to a series of characters and then "join them together" with the _S_ operator I have. I wish I could write something of the form _S_ / _T¨ someChars but this doesn't really work :P
But I also don't want to write down dozens of _Ts and _S_s...
one possibility would be to generate the string of code I want to have and then ⍎ it... but this also doesn't sound that elegant
(totally unrelated but why can I type _T and view its source but if I type _S_ I get a SYNTAX ERROR?)