Here it is…
The MIT License (MIT) | |
Copyright (c) 2014 Richard Cook | |
Permission is hereby granted, free of charge, to any person obtaining a copy of | |
this software and associated documentation files (the "Software"), to deal in | |
the Software without restriction, including without limitation the rights to | |
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | |
the Software, and to permit persons to whom the Software is furnished to do so, | |
subject to the following conditions: | |
The above copyright notice and this permission notice shall be included in all | |
copies or substantial portions of the Software. | |
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | |
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | |
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | |
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | |
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
parseDigits l = parseDigits' l (10 ^ (length l - 1)) | |
where | |
parseDigits' l multiplier | |
| null l = 0 | |
| otherwise = multiplier * parseDigit (head l) + parseDigits' (tail l) (multiplier `div` 10) | |
parseDigit c | |
| c >= '0' && c <= '9' = fromEnum c - fromEnum '0' | |
| otherwise = error "parseDigit: character is not a digit" | |
main = do | |
print (parseDigits "34567") |
Content © 2025 Richard Cook. All rights reserved.