Speed is probably the consideration here, assuming this code appears
after the bulk of bootstrap.
> The final implementation with multi-methods seems cleaner to me in
> making it clearer what the intent of the code is while allowing the
> disjoint functionality. Too bad the result of the defmulti filter is
> not available to the methods.
This suggests that the following might be a useful enhancement to
multimethods: if any particular method is given 1 more argument than
the dispatch function, the last argument will be filled with the
dispatch function's return value if that method is selected.
--
Protege: What is this seething mass of parentheses?!
Master: Your father's Lisp REPL. This is the language of a true
hacker. Not as clumsy or random as C++; a language for a more
civilized age.