From: Paolo Bonzini <bonzini@gnu.org>
Date: September 12, 2007 7:31:31 AM CDT
To: submission@rubyquiz.com
Subject: Please Forward: Ruby Quiz SubmissionThis is a solution for rubyquiz #122 (credit card).
class String
def luhn
(split(//).inject([0,0]) {
>(s1,s2), ch| c=ch.to_i; [s2 + c, s1 + (c*2%10) + (c*2/10)]
}) [0] % 10 == 0
end
endmapn is probably more elegant, but this one does not use reverse, which is pretty cool IMO.
Paolo
···
Begin forwarded message: