Re: [stack] Re: Jon Purdy: Why Concatenative Programming Matters

Robbert van Dalen <[email protected]> Tue, 20 Mar 2012 08:26:08 +0100
Newsgroups gmane.comp.lang.concatenative
Message-ID <[email protected]>
> I've got a few more things to do today, so I can't post much more; but
> anyone who doesn't know what I'm talking about when I say "new bases"
> should start reading http://tunes.org/~iepos/joy.html. What you should
> try to understand is his sentence: "The eight combinators presented
> above are by no means all of the combinators; there are infinitely
> many combinators. However, eventually we'll show that from the above
> combinators, it is possible to construct all other combinators. In
> fact, it will turn out that there is a base consisting of just two
> combinators, from which all other combinators can be constructed."

Does zeroone have exactly two combinators and are they different from iota or jot?
http://semarch.linguistics.fas.nyu.edu/barker/Iota/

> Once that sentence makes some sense to you we're ready to go. You
> won't have to understand how to construct combinators; you'll only
> need to understand the basic ideas behind that sentence: combinators,
> a base consisting of a number of combinators, and the concept that
> combinators can be used to construct other combinators.

i believe the real challenge is to find two combinators that have the most 'impact'.
i.e. their combinations must spawn maximal useful 'functionality'.
is that what zeroone is about? to find the best two combinators?

> Wow, that's cool. I've always wanted to experiment with chemical
> abstract machines, but my employer does random testing. Ha hah.
> Seriously, though, I read up on CAMs; sounds right up your alley (from
> your work with the Enchilada language), as it would fit nicely on
> highly parallel machines. I'd like to hear more.

the OER language. (http://translate.google.nl/#nl%7Cen%7Coer%0A%0A)

just a small example of what i'm after.

consider the following unordered soup (multi-set) of numbers and multiply operators (molecules)

3,*,2,*,*,4,5

note that the above has specific (syntactic) order but that's just syntax. comma's separate molecules. 

now every molecule in the soup can (react) with another molecule, by concatenating them together to form a new molecule.
all this can happen at any time, concurrently.

molecules themselves also be rewritten concurrently, when they form valid molecules to be reduced to other molecules.
the rewriting of molecules follow 'standard' concatenative semantics.

this is a possible sequence of reactions.

1) 3 *,* 4,5 2,*
2) 3 * *,5 2 * 4
3) 3 * * 10 4

-- it seems where are stuck at 3). 

but OER has a circular 'stack' so we can shift (roll) the expression:

3 * * 10 4

to

4) 10 4 3 * *
5) 10 12 *
6) 120

any order of execution will produce result 6.

of course, we need to consider confluence when we combine non-associative operators.
the idea is that OER will always produce all possible results (postfix expressions that can't be rewritten anymore), lazily.
in that sense, OER is non-deterministic, just like prolog, but i'm not sure if i should pursuit this direction.

cheers,
R.

> > R.
> 
> -Wm
> 



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/concatenative/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/concatenative/join
    (Yahoo! ID required)

<*> To change settings via email:
    [email protected] 
    [email protected]

<*> To unsubscribe from this group, send an email to:
    [email protected]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/