@dzaima no I'm not arguing what the definition of "BACONS NOTHING" is, I'm arguing the meaning of the word, and that it is confusing and a different name should be chosen... and this isn't bike shedding, its conceptually inside-out and hurts my brain
you can't have a nothing that is something nothing is the absence of "thinginess"
nothing‿x "nothing is joined to x" being a 2 element list is the very definition of cognitive dissonance @Marshall @dzaima
@nathanrogers I'd say the list wouldn't exist. a‿b‿cmust be 3-item list by the syntax, but if one is a nothing, you can't have 3 items, therefore error
@nathanrogers empty can be confused for an empty array. Null can be confused with the classical null pointer (not that BQN has those). void doesn't really describe what it is, and doesn't match how other langs use it either. nothing at least has clear resemblance
@nathanrogers In BQN, it means there is no value for the current expression (the expression's value is nothing). It doesn't mean a token that's absolutely ignored from the syntactical representation of the code.
I just read how it works as a right arg (any function applied returns self immediately) and left arg (the function ignores it) and everywhere else (errors). This does sound more than "nothing"
and IMO it's doing even more job than what a "null" or "void" can represent
@nathanrogers imo it's pretty clear that ·‿1 read as "an array of nothing and 1" is clearly implying that there are 2 items, the first is a nothing, and the second is a 1. But an array can't have nothings as items
I come into a bacon forums asking questions, and I say "like hey guys, for some reason, I'm adding this value, but there's nothing happening, nothing is being appended to my list!"
@nathanrogers no, I'm arguing about language there. I believe [1] is not an array of "nothing" and "1". It might be an array which contains "nothing" and "1", but not an array which fully consists of precisely "nothing and 1"
@nathanrogers Nothing isn't a value, so it can't be passed as a value. It can't be assigned as a name or used as the last expression in a non-namespace block.
@nathanrogers You're describing 𝕨, not ·. These are the only two tokens (okay, 𝕎 too) that can ever indicate Nothing; · always indicates it and 𝕨 sometimes does.
@Marshall @dzaima reading through the tutorial, it seems to me that the only context in which "nothing" is relevant is when discussing whether a function is monadic or dyadic... in that sense, conceal the "nothing" as an implementation detail, and say that W is a "maybe"
@nathanrogers the bigger one is the one that does more. so ∘ executes both functions just once, whereas ○ will execute its right operand twice for dyadic application