We've long lamented the unfortunate nature of "verbing" nouns like FUNCTION.
And again, we have this situation where if we use COMBINATOR as the way of declaring a combinator, what do we call instances? C? COMB?
It feels a bit sad that we can't just write something like:
combinator: select state.combinators group! ; get the GROUP! combinator
If you do that, you're overwriting the function you use to make combinators. And that's no good.
So I wind up writing:
comb: select state.combinators group! ; get the GROUP! combinator
But it seems that COMBINATOR rightly belongs to the instance, and the thing that makes combinators should be called something like MAKE-COMBINATOR. If anything, COMB should be the shorthand for MAKE-COMBINATOR and we allow the word COMBINATOR for instances of combinators.
I got to wondering why we don't like MAKE-FUNCTION or MAKE-COMBINATOR. Is it the hyphen? What if it were make function and make combinator and it dispatched to the "makers" based on quoting the words?
This would create a little bit of confusion, but we've gotten used to:
length: length of block
Why can't we accept:
combinator: make combinator [...] [...]
I hate to beat this old dead horse again. But FUNCTION is a noun. COMBINATOR is a noun. It still feels like something is wrong with verbing these nouns just for the sake of brevity and familiarity, and then having to contort the names of instances to avoid overwriting the verb.
NEW is shorter and not contentious with the historical meaning of MAKE:
combinator: new combinator [...] [...]
It just seems like we're fighting against the English language to be using nouns wrong, just because other languages have done it.