[Prev][Next][Index][Thread]

Re: Another one: strings in method definitions?



Whoops, I completely mistook your intent :-(  Sorry about that...



In article <brucehoult-1005001632490001@bruce.bgh>, brucehoult@pobox.com
(Bruce Hoult) wrote:

> In article <874s87i1m0.fsf@ethereal.dyndns.org>, Nolan Darilek
> <nolan@ethereal.dhis.org> wrote:
> 
> > I have the following method definition:
> > 
> > define method output-c-type
> >      (value :: <c-pointer-type>, name :: <string> = "anonymous", #key
> anonymous = #t)
> >  => (result :: <string>)
> > 
> > But, that doesn't work; d2c complains that none of the main method
> > definition rules work. Removing the default value for name compiles,
> > but that isn't what I want. I tried 'make(<string>, "anonymous")' and
> > as(<string>, "anonymous") with no luck.
> > 
> > What obvious point am I missing now? :)
> 
> It should be (ignoring the keyword):
> 
> define method output-c-type
>      (value :: <c-pointer-type>, name == "anonymous")
> 
> ... or ...
> 
> define method output-c-type
>      (value :: <c-pointer-type>, name :: singleton("anonymous"))
> 
> 
> Basically, "name" isn't of type "string", it's of type "this 'ere
> particular string".  The 'name == "anonymous"' syntax is just ahandy
> shortcut for the real thing, which is the one using the "singleton"
> function.



References: