Gra*_*ant 1 math recursion haskell negative-number
在 haskell 中,我使用以下方法获取正数的第一位:
firstDigit :: Int -> Int
firstDigit n
| n < 10 = n
| otherwise = firstDigit (div n 10)
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决负数的情况?我是否只需要在运行程序的其余部分之前检查它们,或者是否有更直观的东西?
您可以先调用abs然后使用递归函数,因此:
firstDigit :: Int -> Int
firstDigit = go . abs
where go n | n < 10 = n
| otherwise = go (div n 10)Run Code Online (Sandbox Code Playgroud)