Newsgroups: comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!rochester!udel!news.mathworks.com!zombie.ncsc.mil!nntp.coast.net!col.hp.com!news.dtc.hp.com!hplntx!hplntx.hpl.hp.com!gjr
From: gjr@hplgr2.hpl.hp.com (Guillermo (Bill) J. Rozas)
Subject: Re: R5RS?
Sender: news@hpl.hp.com (HPLabs Usenet Login)
Message-ID: <GJR.96Mar18173727@hplgr2.hpl.hp.com>
In-Reply-To: blume@zayin.cs.princeton.edu's message of 14 Mar 1996 04:48:27 GMT
Date: Tue, 19 Mar 1996 01:37:27 GMT
Reply-To: gjr@hpl.hp.com
References: <4gc83r$617@news.simplex.nl> <4hlv00$i8f@goanna.cs.rmit.EDU.AU>
	<ZIGGY.96Mar11161944@biere.ai.mit.edu>
	<4i5dbp$5ds@goanna.cs.rmit.EDU.AU>
	<ZIGGY.96Mar13070205@rolex.ai.mit.edu> <4i73co$ms8@alpha.pcix.com>
	<AlFmKmO00YUt8R5ItO@andrew.cmu.edu>
	<BLUME.96Mar13234827@zayin.cs.princeton.edu>
Nntp-Posting-Host: hplgr2.hpl.hp.com
Organization: Hewlett-Packard Laboratories, Palo Alto, CA
Lines: 26

In article <BLUME.96Mar13234827@zayin.cs.princeton.edu> blume@zayin.cs.princeton.edu (Matthias Blume) writes:

|   Hehe!  Not to start a debate about multiple return values all over
|   (you all know what I think about Scheme's unschemely approach), but
|   once again the ugly beast took its toll...
|
|   It should be:
|
|     (define (compose f g)
|       (lambda args
|	 (call-with-values f (apply g args))))
|
|   which is, of course, much simpler, cleaner, and easier to understand
|   than
|
|     fun compose (f, g) x = f (g x)
|
|   :-)

You can do the same in Scheme.  Just don't use multi-arity
proocedures -- just use procedures that take lists as arguments.

In fact, with a macro system it is easy to have your cake and eat it
too, so you can have as simple a definition as in ML.

More choices is not necessarily bad, it is just more choices.
