From: Martin DeMello Date: 2008-01-30T07:07:31+09:00 Subject: neat idea from arc Paul Graham just released Arc (http://paulgraham.com/arc0.html), a lisp dialect with an emphasis on "quick-and-dirty" exploratory programming, and compactness of code. One of the ideas he threw in seems like it might fit well into Ruby too - when filtering functions like keep and rem (select and reject) are given a value rather than a function, they implicitly construct the equality function and pass that in instead. The ruby equivalent would be to have select, reject, partition, any? and all? (and possibly some others I'm overlooking) do the following: def select(arg, &blk) if block_given? old_select(&blk) else old_select {|x| arg === x} end end and likewise for the others So we can write, for instance ints = input.select Integer lcase = words.reject /[A-Z]/ and so on. What say you? martin