Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site harvard.UUCP Path: utzoo!linus!vaxine!wjh12!harvard!mark From: mark@harvard.UUCP (Mark Lentczner) Newsgroups: net.lang Subject: Re: Time for keyword parameters in prog. langs Message-ID: <214@harvard.UUCP> Date: Tue, 10-Apr-84 09:40:55 EST Article-I.D.: harvard.214 Posted: Tue Apr 10 09:40:55 1984 Date-Received: Wed, 11-Apr-84 01:51:20 EST References: <3781@utcsrgv.UUCP> Organization: Aiken Computation Lab, Harvard Lines: 39 -=- The SmallTalk-80 equivelent of `function calls' are based on a form of keyword parameters. When a message (roughly similar to a function call) is passed the parameters (including the reciever of the message) are each preceded by a keyword. For example: rotate: car-object about: x-axis by: 45.0 On the otherhand, SmallTalk-80 does not allow for the relative positions of the keywords to change, in other words the message: rotate: car-object by: 45.0 about: x-axis is actually a different message. Despite this, I think that SmallTalk-80 model gives a nice place for departure in this realm. I myself am working on a language & environment, EAMES, that does various forms of patteren matching to execute messages. My hope is to achieve an even greater freedom via a loosening of the one keyword per parameter constraint and a flexible default system. Thus, all of the following would incurr the same action: rotate car-object by 45 degrees about x-axis. rotate car-object about x-axis 45 degrees. about x-axis rotate car-object (PI / 2.) radians. and allow the following to invoke similar actions (via defaults): rotate car-object PI radians. rotate car-object about y-axis. I would be interested in discussion and/or info & pointers on other programming environments that have take other than the strict "Macro-Expansion" approach to fitting action invocations with action definitions. - Mark Lentczner Harvard Electronic Music Studio Music Department Harvard University Cambridge, MA 01238 decvax!genrad!wjh12!harvard!mark