From ... From: Erik Naggum Subject: Re: Functional programming Date: 1999/11/06 Message-ID: <3150898143617424@naggum.no>#1/1 X-Deja-AN: 545254636 References: <941894743.991192@lxms.cit.org.by> <941902054.108718@lxms.cit.org.by> mail-copies-to: never X-Complaints-To: newsmaster@eunet.no X-Trace: oslo-nntp.eunet.no 941909345 9639 195.0.192.66 (6 Nov 1999 17:29:05 GMT) Organization: Naggum Software; +47 8800 8879 or +1 510 435 8604; fax: +47 2210 9077; http://www.naggum.no NNTP-Posting-Date: 6 Nov 1999 17:29:05 GMT Newsgroups: comp.lang.lisp * Eugene Zaikonnikov | You're right, but Scheme is a bit more elegant at function composition. | ((foo a b) c d) looks more natural than (funcall (foo a b) c d), though | essentially it's the same. that's no more than syntactic artificial sweetener at best. while it may look cute to the uninitiate, the decision not to have FUNCALL means you can't actually make indirect functions calls, as in the following very useful idiom to process a list of functions. (mapcar #'funcall ...) of course, any real Lisper knows how to teach Scheme to be smart about this, too, but Scheme has to be taught just about _everything_: (define funcall (lambda (function . args) (apply function args))) Scheme should adopt a new syntax for APPLY: (function . args). I've suggested it before, and it's weird tha they haven't adopted it: it would be so much more _elegant_ when compared to the syntax of the lambda lists. #:Erik -- Attention Microsoft Shoppers! MS Monopoly Money 6.0 are now worthless.