Re: [stack] function "adjoinment"?
"William Tanksley, Jr" <[email protected]> Wed, 10 Feb 2010 06:43:01 -0800
| Newsgroups | gmane.comp.lang.concatenative |
|---|---|
| Message-ID | <[email protected]> |
chris glur <[email protected]> wrote: > ]No. Your reading comprehension is just very poor (in all honesty). > So should I comprehend that joy-syntax is less comprehendable > [with the normal back ground of reading plain text] than lisp/algol ? > Nowak gave a good answer to this. Mine is a little different: No. If all you know how to read is plain English text, don't expect to be able to read Lisp, Algol, or Joy at all. In fact, if that's all you know, you can't reasonably expect to be able to read the specification of the factorial function, since that uses not only algebraic notation, but also the concept of recursion. People need a basic platform of training. Of all the notations mentioned above, Joy definitely requires the least training; of course, that's not to say that it's the easiest to use, although I think that the basic notation is an excellent framework for an easy-to-use language (as Factor's rapid success demonstrates). I include "algebraic notation" as one of the notations against which Joy has to compete, and I include it as a notation that's harder to teach; in fact, it's much harder, because it's not a consistent system (note: I've taught algebra up to "Intermediate" level at a community college (that's about good high school level, which is more than most people get); I know the problems people normally have learning it). In fact, in advanced math, people tend to invent their own notations. Herstein writes several of the most-used texts in abstract algebra (including the one I learned the majority of my abstract algebra from), and his invented notation for function composition used in the context of group theory is actually deliberately concatenative (although, of course, he doesn't use the term). Can you make any contibution to my several TECHNICAL questions, > starting with opinons of the viability of cat-like 'meta-langauge-ing' > functions which have been already built in a language which doesn't > require manual shuffling. ? > A technical question requires technical context in order to support a discussion that reaches resolution; you haven't done any work to provide that context. Why don't you build -- or find -- a little compositional language (the term I've seen for what you're talking about), and tell us how awesome it is, rather than asking us how awesome it'd be? After all, you're the one who thinks it'd be awesome. You already know that bash, csh, and scsh are made to be mainly compositional (the first two are pretty bad programming languages aside from their ability to compose other languages' work). You probably know that Plan9 is an entire OS designed to enable compositional programming; its pipe model includes routing and mailbox support. A while ago you heard (but to all evidence did not listen to) me pointing out the Piccola language, which is a formal language for software composition. If compositional programming is so awesome, why isn't every program written using one of these languages to stitch its other languages together? NB. I say 'cat-like' since: > * there seems to still be discussions about names; > There have never been any discussion of names in the sense you're using. Your language isn't at all like the 'Cat' language. It's concatenative only in an odd, crippled way (since you don't want to allow dataflow reshaping). It wouldn't really be appropriate to call it 'concatenative', so I respect that decision; but it's bizarre to call it 'cat-like'. * I mean the data-flow paradigm, and especially where there are no globals; > I think of concatenative and FP-derived languages when you (and others) speak of that. so that at stage N the programmer doesn't need to know/see what happened > in the previous N-1 functions i.e. effective information hiding. > ...but this is actually a thought-provoking definition. I suspect that it's impossible and I'm not sure that it's at all practical; it seems to imply that each word in the definition of a program would have to be operationally independent of all the previous words; but such a language would be incredibly verbose, since you'd have to have distinct words for any possible operation, with no possibility of overloading due to context (since the definition excludes the possibility of using context). The reason I suspect it's impossible is that programming is (to be informal) all about making things happen and reacting to things that happen. If you can't know or see that happened in the previous N-1 functions, how can you program by that definition? This is only an informal suspicion, and I'd be glad to discuss what's wrong with it :-). And, of course, the deep mathematical meaning I see in your definition MAY actually be a creature of my own fevered imagination. If I've read too much into your text, let me know. == Chris Glur. > -Wm [Non-text portions of this message have been removed]