Subject: Re: Keyword arguments... From: Brandon Ibach <bibach@xxxxxxxxxxxxxx> Date: Thu, 6 Aug 1998 10:59:33 -0500 (CDT) |
Norman Walsh said: > > Is it the case, as it appears to be, that in user-defined > functions with keyword arguments, the keyword arguments must > always appear last? > > I'd like to define a function, "make-element", so that it could > be used just like the sgml backend's "make element" function. > > (make-element gi: "foo" attributes: '() some-sosofo) > > But it seems I'm stuck with either > > (make-element some-sosofo gi: "foo" attributes: '()) > > or > > (make-element gi: "foo" attributes: '() sosofo: some-sosofo) > > Is that the case, or am I overlooking something? > There is a very specific order to how actual arguments are assigned to formal arguments. I believe it's covered in the DSSSL spec in the section on lambda. I don't have the spec here, but as I recall, regular formal arguments are *always* assigned first, then keywords, then optionals (the order of those last two may be reversed... not sure), then anything that's left gets assigned to the rest arguemnt. So, I expect the definition for make would be something like (define make (lambda class #!key gi attributes #!rest soso) ...) Pardon my sloppy syntax if I didn't do that quite right, but you get the idea. Any arguments you want to list *after* keyword assignments would have to be lumped into the "rest" and pulled back out by the function. But, then, I could be wrong... :) -Brandon :) DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: Keyword arguments..., Paul Prescod | Thread | Re: Keyword arguments..., James Clark |
Re: Keyword arguments..., Paul Prescod | Date | Re: Keyword arguments..., James Clark |
Month |