Validate a card number. The algorithm follows these steps:
- Double the value of every second digit beginning with the rightmost.
- Add the digits of the doubled values and the undoubled digits from the original number.
- Calculate the modulus of the sum divided by 10.
If the result equals 0, then the number is valid.
This project uses stack
. You can read a Quick Start Guide for basic information.
git clone git@github.com:azdanov/haskell-card-validator.git
cd haskell-card-validator
stack setup
stack build
Stack
provides a mechanism to run a built executable:
stack exec card-exe
Enter a Card Number:
4556945538735694
Number 4556945538735694 is invalid.
stack exec card-exe
Enter a Card Number:
5256283618614517
Number 5256283618614517 is valid.
Hspec is used for testing. To run the testing suite execute:
stack test