eXi*_*nCe 1 int haskell concatenation
我在进行以下练习时遇到问题:
我必须创建一个名为addDigit的函数,它接受两个Int,第二个在0到9之间,并返回一个Int,它是第一个Int,后跟第二个.
例:
输入: addDigit (-123) 4
输出: -1234
我试过的是以下内容:
addDigit :: Int -> Int -> Int
addDigit x y = x ++ y
Run Code Online (Sandbox Code Playgroud)
我得到它不起作用,因为++关键字只适用于字符串,字符和列表(我认为),这应该以一种简单的方式解决,而不会将Int更改为字符串或任何其他变量,但我根本不了解如何做到这一点.
您试图以图形方式解决问题(将整数视为字符串),您希望将其视为数值问题.对于正值,通过以下函数完成附加数字.
addDigitPositive a b = 10 * a + b
Run Code Online (Sandbox Code Playgroud)
这不幸的是不会工作,如果a < 0.在这种情况下,我们不得不减去 b.我们可以轻松地将此功能与功能保护相结合.
addDigit a b | a < 0 = a * 10 - b
| otherwise = a * 10 + b
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3804 次 |
| 最近记录: |