Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!helios!bcm!dimacs.rutgers.edu!seismo!ukma!rex!samsung!spool.mu.edu!uwm.edu!bionet!agate!shelby!neon!eclipse!hasan From: hasan@eclipse.stanford.edu (Waqar Hasan) Newsgroups: comp.lang.scheme Subject: semantics of procedure calls Message-ID: <1991Feb28.230440.1762@Neon.Stanford.EDU> Date: 28 Feb 91 23:04:40 GMT Sender: news@Neon.Stanford.EDU (USENET News System) Organization: Hewlett-Packard Labs Lines: 27 I am new to Scheme and my source of information is the R^3 report on Scheme. I am considering using the primitive expressions of Scheme as part of a database language. The language is an interface language to a data server running on a multi-processor machine. I would like to seek clarification on the semantics of procedure calls. The report states that arguments to a procedure are evaluated in an "indeterminate order". Does this mean any particular evaluation should be equivalent to some serial order or are there no restrictions? Example: Consider (f (+ e1 e2) (+ e3 e4)) The order of evaluation e3, e4, e1, e2 is a serialization since it corresponds to evaluating the second argument and then the first argument. The order e1, e3, e4, e2 on the other hand is not (in general) equivalent to to any serial evaluation of the arguments. The phrase "indeterminate order" seems to suggest that a corresponding serial order is required. Is that the case? Should that be the case? -Waqar Hasan hasan@hplabs.hp.com, 415-857-4233