Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!uunet!mcsun!ukc!edcastle!aiai!jeff From: jeff@aiai.ed.ac.uk (Jeff Dalton) Newsgroups: comp.lang.lisp Subject: Re: FUNCALL question Message-ID: <1675@skye.ed.ac.uk> Date: 5 Feb 90 16:33:36 GMT References: <3277@accuvax.nwu.edu> <1990Jan28.175437.19293@hellgate.utah.edu> <1990Jan29.224305.20803@hellgate.utah.edu> <385@forsight.Jpl.Nasa.Gov> <1654@skye.ed.ac.uk> <4541@brazos.Rice.edu> Reply-To: jeff@aiai.UUCP (Jeff Dalton) Organization: AIAI, University of Edinburgh, Scotland Lines: 37 In article <4541@brazos.Rice.edu> dorai@titan.rice.edu (Dorai Sitaram) writes: >In article <1654@skye.ed.ac.uk> jeff@aiai.UUCP (Jeff Dalton) writes: >$I'm not sure it's fair to say FUNCALL is just syntax, because FUNCALL >$is not restricted to appearing as the car of a function call. FUNCALL > ^^^^^^^ >$is a function, and Scheme does not have such a function. Since the > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >$original quesiton was "why is FUNCALL a function?", this is a relevant, >$although minor, point. >I saw the above rather by accident, so what I say here might take >something out of context. Disclaimer done, I don't see how someone >can claim that Scheme doesn't have a _funcall_ function (procedure). >Surely you don't just mean that the language standard doesn't mention >_funcall_? For _funcall_ is easily retrieved as: > > (define funcall (lambda (f . z) (apply f z))) > >So what am I missing? Presumably you don't think there's *no* difference between Scheme and Common Lisp on this point. What you seem to be missing is the difference between "unlike Common Lisp, Scheme doesn't have a function called FUNCALL" and "FUNCALL can't be defined in Scheme". Maybe that's not quite what you're missing, but you do seem to be replying to the second claim rather than the first. I suppose I am just saying the Scheme Report doesn't mention funcall, but note that I did say it was a minor point. Nonetheless, there are some practical consequences. That the language standard doesn't mention funcall means that the user has to define it (if the user wants it at all, which in Scheme is unlikely). -- Jeff