From: Joe Marshall
Subject: Lisp 1 and a half?
Date: 
Message-ID: <kX8Ea.94179$M01.48704@sccrnsc02>
Both Scheme and Common Lisp treat the first element
in a form specially in that they attempt to apply it
to the results of the other elements.

I have seen, however, an interesting hack where the
*second* element of the form was the special one.
Since most forms have at least two elements, you can
go a long ways with this.

(not that I think this is a good idea, but in this
way I can extend the thread without invoking godwin's
law)

(fibonacci is-function (x)
  ((x < 2) chooses
     x
     (((x - 1) fibonacci) + ((x - 2) fibonacci))))

Yoda would like, I think, hmm?


-- 
~jrm
http://home.attbi.com/~prunesquallor/

From: Jens Axel Søgaard
Subject: Re: Lisp 1 and a half?
Date: 
Message-ID: <3ee1a40d$0$97237$edfadb0f@dread12.news.tele.dk>
Joe Marshall wrote:
> Both Scheme and Common Lisp treat the first element
> in a form specially in that they attempt to apply it
> to the results of the other elements.
> 
> I have seen, however, an interesting hack where the
> *second* element of the form was the special one.
> Since most forms have at least two elements, you can
> go a long ways with this.
> 
> (not that I think this is a good idea, but in this
> way I can extend the thread without invoking godwin's
> law)
> 
> (fibonacci is-function (x)
>   ((x < 2) chooses
>      x
>      (((x - 1) fibonacci) + ((x - 2) fibonacci))))
> 
> Yoda would like, I think, hmm?

Very clever.

It seems to me, that we now need two numbers to describe
the lisp in question. One counts the number of namespaces
and the other which element is special.

Scheme is then 1.1, CL is omega.1 and yours is 1.2?

I would hate to program in 1.5 :-)

-- 
Jens Axel S�gaard
From: Nikodemus Siivola
Subject: Re: Lisp 1 and a half?
Date: 
Message-ID: <bbvat1$5ofdl$2@midnight.cs.hut.fi>
Joe Marshall <·············@attbi.com> wrote:

> (fibonacci is-function (x)
>   ((x < 2) chooses
>      x
>      (((x - 1) fibonacci) + ((x - 2) fibonacci))))

This reminds me of the interpreter for an ad-hoc lisp I was playing
around at one point. It had syntax sugar along these lines:

 (a:b) => (b a)

 (a) [ |b| c d ] => (a (lambda (b) c d))

There was something else as well, but can't remember. Anyways, the main
thing this bought was Ruby-style iteration:

 (collection:each) [ |item| (do-things item) ]

Yay. Clever and utterly useless.

Cheers,

  -- Nikodemus