Ludovic Courtès wrote:
Hi,

Dan McMahill <[EMAIL PROTECTED]> writes:


I can do something like

SCM scm_myfn(SCM flags)
{

 myfn (scm_num2int (flags, SCM_ARG1, "myfn"));

 return SCM_BOOLEAN_T;

}

but I'm not sure of the best way to define the flags in scheme.  Or
maybe this is not "the scheme way".


What you describe above is doable and is an approach sometimes taken.
See for instance the POSIX functions in Guile, e.g., `popen'.

Personally, I prefer to pass a list of symbols rather than a single
number in such situations.  This might require some more work if you
need to convert those flags to a C or'ed integer, but not so much
because (i) symbols can be compared with `eq' which is fast, (ii)
the list of flags may usually be small, and (iii) the number of values
that can be taken by the flags is small as well.



Hi Ludovic,

Thanks for the reply. Could you show a short example of what the scheme function call might look like?

Are you meaning

(foo (list 'flag1 'flag2 'someotherflag))

I don't care much about speed in this particular case.

Thanks
-Dan


_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user

Reply via email to