Re: [stack] Why is point-free form so interesting?
"William Tanksley, Jr" <[email protected]>
| Newsgroups | gmane.comp.lang.concatenative |
|---|---|
| Message-ID | <[email protected]> |
John Carter <[email protected]> wrote: > Christopher Diggins wrote: > > William Tanksley, Jr <[email protected]> wrote: > >> Stack notation is NOT the simplest possible data transfer notation; it > >> imposes a total ordering on data, when often a partial ordering is > >> sufficient. > > Many programming languages don't even bother allowing people to > > specify unordered data because it would introduce new constructs, > > operations, or representations into their language, thus increasing > > complexity. > Yes, having an unorder data type is implementationwise more complex, > but semantically simpler. Actually, an ordered data *type* is simpler in every way. But we weren't talking about data types; we were talking about the ability to specify dataflow. Stack-based concatenative languages completely order their dataflow. Applicative functional languages leave their dataflow entirely implicit. Explicit dataflow is good, but for most programs there really isn't a total ordering of dataflows; inventing one in order to manipulate a parameter stack is unpleasant and unnecessary. I don't have a solution, although I can see several possible partial solutions. (I don't know.) Array languages allow you to perform dataflow over several chunks of data at identical stack level; Ripple allows you to return several results at the same stack level. Both are promising approaches. > I suspect "unordered set" needs to be a (or the) primitive. The problem with that is that you have to develop a concept of identity before you can build a set. An ordered list doesn't require identity. But there are interesting results to be gained from a multiset. Hmm, let me check Zotero... http://web.maths.unsw.edu.au/~norman/papers.htm has (at the end) an interesting paper on recasting set theory in terms of multisets and arrays. IMO worth checking out. There are some other papers on the same site on the author's rebuilding of trigonometry along purely algebraic lines (i.e. without sin, cos, or tan). Very interesting results. Some of the more technical papers are on that page; another page elsewhere has a few chapters excerpted from his book. But I digress. > Parameters probably should be a set, and a binding should be a map (an > unordered set of pairs). You're in the wrong discussion group -- concatenative languages don't have parameters as such :-). > John Carter Phone : (64)(3) 358 6639 -Billy