Good question! I can't decide as well. I want to know how people think
about it.
In a lazy language, a variable is a 0-ary thunk, while a predicate is a
1-ary thunk. Since they are really just special case of a general thing,
it make sense to use foo? for both cases. But we all know guile is not
lazy, so I really don't know what to do.
Christopher Allan Webber <address@hidden> writes:
Hello everyone! Here's a little bikeshed for us to paint.
I've noticed that it's common in Guile modules to use "foo?" for
variable names involving booleans. It's tempting, because this looks
an awful lot like you're asking a question... and it's also common
for this even to be keyword arguments to procedures, etc.
But is it a good idea? I thought "foo?" was supposed to be for
predicates, as a nicer version of the "foo-p" predicate convention in
other non-scheme lisps. I can't imagine other lisps doing "foo-p" for
just variables with boolean values.
On the other hand, once you start adding ? to the end of boolean'y
things, it *does* become tempting to put them at the end of boolean
variables and arguments. It looks pretty nice.
What do people think? I'm struggling with deciding what's the right
thing for my own code, but leaning towards "we shouldn't use the ?
suffix for just boolean values".
- Chris