Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site mit-eddie.UUCP Path: utzoo!linus!decvax!genrad!mit-eddie!barmar From: barmar@mit-eddie.UUCP (Barry Margolin) Newsgroups: net.lang Subject: Re: I/O, and are Function Calls part of language? Message-ID: <694@mit-eddie.UUCP> Date: Sun, 4-Sep-83 18:08:08 EDT Article-I.D.: mit-eddi.694 Posted: Sun Sep 4 18:08:08 1983 Date-Received: Mon, 5-Sep-83 02:12:30 EDT References: <1664@ihnss.UUCP> Organization: MIT, Cambridge, MA Lines: 21 ihnss!knudsen made the claim that ANYTHING can be done as a function call, and cited Lisp as an example of a language with only function calls and no syntax. As a long-time Lisp programmer, I have to disagree. There is one thing that cannot be done by function calls, and that is control of the order of operations. LISP would be pretty useless without COND, which is not a function; it has a very definite syntax: (cond (predicate . resultants) (predicate . resultants) ...) He was probably confused because the low-level syntax (parens and atoms) is the same as that used for function calls and macro calls, but that is no different than any other langage. In most cases, the common point isn't reached until you go lower: function calls and looping constructs (as one example) in conventional languages are both made up of the same kinds of tokens. -- Barry Margolin ARPA: barmar@MIT-Multics UUCP: ..!genrad!mit-eddie!barmar