Subject: Re: Functional programming
From: Erik Naggum <>
Date: 1999/11/06
Newsgroups: comp.lang.lisp
Message-ID: <>

* 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 <list-of-functions> ...)

  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.

  Attention Microsoft Shoppers!  MS Monopoly Money 6.0 are now worthless.