Complete Joy Base Without DIP

iepos@tunes.org — 2000-05-19 02:43:33

Greetings... I know this is a bit random, but it seems interesting ...
The Joy-like "dip" combinator can be constructed as:

swap unit cat call

Here is how it works:

[x] [f] swap unit cat call
[f] [x] unit cat call (swap)
[f] [[x]] cat call (unit)
[f [x]] call (cat)
f [x] (call)

This construction is interesting because "call" is the only unquoting
combinator it relies on. This means that there exist complete bases
that have "call" as the sole unquoting combinator. In particular,
{swap, dup, drop, cat, unit, call} would work.

It is currently unknown to me if it is possible to construct "dip"
in a similar way from "cons" instead of "cat" and "unit".

Actually, I've been working on a little tool in C that should be able to
answer this question; it would use a brute-force technique to try to
find the smallest construction of a desired combinator from a desired
base. But, it doesn't work now. Hopefully it will work soon ...

Anyway, I don't know if this is of practical use.

- Brent Kerby ("iepos")

srenner@mail.ru — 2000-05-19 14:51:08

--- In concatenative@egroups.com, iepos@t... wrote:
> Greetings... I know this is a bit random, but it seems interesting
...
> The Joy-like "dip" combinator can be constructed as:
>
> swap unit cat call
>
> Here is how it works:
>
> [x] [f] swap unit cat call
> [f] [x] unit cat call (swap)
> [f] [[x]] cat call (unit)
> [f [x]] call (cat)
> f [x] (call)
>
> This construction is interesting because "call" is the only
unquoting
> combinator it relies on. This means that there exist complete bases
> that have "call" as the sole unquoting combinator. In particular,
> {swap, dup, drop, cat, unit, call} would work.


This didn't make sense until I realized that by "call" you meant "i".
What's wrong with Thun's terminology?

iepos@tunes.org — 2000-05-19 17:54:35

> > The Joy-like "dip" combinator can be constructed as:
> >
> > swap unit cat call
> >
> > Here is how it works:
> >
> > [x] [f] swap unit cat call
> > [f] [x] unit cat call (swap)
> > [f] [[x]] cat call (unit)
> > [f [x]] call (cat)
> > f [x] (call)
>
> This didn't make sense until I realized that by "call" you meant "i".
> What's wrong with Thun's terminology?

Whoops... sorry, i should have made that clear.
There's nothing wrong of course with calling it "i" ...

It just seems odd to use a one-letter name for it while using
longer, somewhat descriptive names for other combinators.

- Brent Kerby ("iepos")