[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
case using other equality-testing predicates
I'm sure some people will jump all over me for suggesting this,
but it might be better to allow CASE to accept a :TEST keyword. Which
of these three syntaxes do you-all prefer?
(selector item equalp ("foo" ...) ...)
(case item :test #'equalp ("foo" ...) ...)
(cond ((equalp item "foo") ...) ...)
I think that mixing keywords into a construct like Case that already has
a complex syntax is likely to cause confusion. I would prefer adding a
new construct CASE-TEST that would look like
(case-test #'equalp item ("foo" ...) ...)
This is similar to your Selector, but without the odd treatment of the
test function, and the name emphasizes the close parallel to Case. I
think it is best to put the test function before the item -- other
things in the language put the testing function first.