[comp.lang.scheme.c] remove from mailing list

major@pta.OZ.AU (Major) (02/26/91)

[sorry about answering this to the list, my mail bounced]

walter@vlsivie.tuwien.ac.at writes:

> Does anybody know how to handle varable-argument-lists for MACROS 
> for MIT-Scheme Vers. 7.1 ?

The short answer is

(lambda x ...)

as opposed to

(lambda (x) ...)

To work your example:

> The following sim macro is only working on PC-SCHEME
>
>    (macro sim
>      (lambda (e) (list 'simulate (list 'quote (cdr e)))))
>
> It is possible to call this  macro with a variable argument list
>
>    (sim a b c)
>    => (a b c)   
>
> How could this be done for MIT SCHEME Ver 7.1 ??

(syntax-table-define system-global-syntax-table 'sim
    (macro e
        `(simulate ',e)))

Major

+--------------------------------------------------+------------------------+
| Domain: major@pta.oz.au                          | Phone: + 61 9 474-2600 |
| UUCP: {uunet,hplabs,ukc}!munnari!pta.oz.au!major | Fax: + 61 9 474-1221   |
| Mail: Box T1680 GPO, Perth WA 6001, Australia    |                        |
+--------------------------------------------------+------------------------+

The meek shall inherit the earth: the rest of us will escape to the stars!