[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: