Re: [stack] language hierarchy
John Nowak <[email protected]>
| Newsgroups | gmane.comp.lang.concatenative |
|---|---|
| Message-ID | <[email protected]> |
We might restrict the definition of composable to make it more useful by adding the requirement that all functions be unary (e.g. stack -> stack). Indeed, this is why we can write everything in terms of function composition in the first place. Not only does this narrow things down a bit (which is a good thing if you want to be able to talk about the properties of such languages), it also removes the need for silly explicit restrictions like "composition be part of the abstract syntax"; If you require that all functions be unary, then implicitly composition *must* be part of the abstract syntax as it's a binary operation. "A language is composable if new functions are created only by composing existing unary functions." Then again, if you require that functions be written *only* in terms of composition, then all functions *must* be unary anyway, and hence composition *must* be part of the abstract syntax. Hence, adding the unary restriction to the definition is unnecessary. For the purposes of making the definition useful, I think the "only" requirement is very reasonable. We can extend this definition to talk about "partially composable" languages when the time comes. - John