<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: card code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Thu, 24 Jul 2008 08:46:22 GMT</pubDate>
    <description>DZone Snippets: card code</description>
    <item>
      <title>Luhn Credit card checksum function</title>
      <link>http://snippets.dzone.com/posts/show/1147</link>
      <description>&lt;code&gt;&lt;br /&gt;luhn: func [    ; tested out OK.&lt;br /&gt;    card-num [string!]&lt;br /&gt;    /local cksum flag val&lt;br /&gt;] [&lt;br /&gt;    cksum: 0&lt;br /&gt;    flag: even? length? card-num&lt;br /&gt;    foreach digit card-num [&lt;br /&gt;        val: to integer! form digit&lt;br /&gt;        if flag [&lt;br /&gt;            val: val * 2&lt;br /&gt;            if val &gt; 9 [val: val - 9]&lt;br /&gt;            ; - alt -&lt;br /&gt;            ;val: pick [0 2 4 6 8 1 3 5 7 9] val + 1&lt;br /&gt;        ]&lt;br /&gt;        cksum: cksum + val&lt;br /&gt;        flag: not flag&lt;br /&gt;    ]&lt;br /&gt;    print cksum&lt;br /&gt;    0 = remainder cksum 10&lt;br /&gt;]&lt;br /&gt;&lt;br /&gt;;print luhn "4005550000000019"&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 13 Jan 2006 04:13:03 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/1147</guid>
      <author>gregg.irwin (Gregg Irwin)</author>
    </item>
  </channel>
</rss>
