\ test validity of card numbers : luhn ( u -- f ) 0 0 rot ( accu flag ccr ) begin ?dup while 10 /mod >r over if 2* 1- 9 mod 1+ then rot + swap 0= r> repeat drop 10 mod 0= ;