【发布时间】:2018-10-11 20:26:47
【问题描述】:
import Data.Char
x1 xs = sum(map (hilfsfunction) xs)
hilfsfunction x
| (ord 'x' > 97 && ord 'x' < 107) = (ord 'x' - 96)
| (ord 'x' > 48 && ord 'x' < 58) = (ord 'x' - 48)
| otherwise = 0
我需要编写一个程序,其中函数接受一个字符串,然后用它做以下事情:
- 如果字母是 a,则将其更改为 1
- 如果这封信是别的东西,我应该取相同的数字。
- 所有其他符号应更改为 0
我现在的问题是,每次我启动这个程序时,总和都是 0,不管第一种情况还是第二种情况是真的。
示例:让我们取“6”:
*Main Data.Char> ord '6' > 48 && ord '6' < 58
True
之后:
*Main Data.Char> ord '6' - 48
6
但如果我承担我的职责,每次都是这样......:
*Main Data.Char> x1 "6"
[0]
我不知道我的错误在哪里。
【问题讨论】:
-
你硬编码了
'x'字符而不是使用x变量我猜。 -
调整警告会发现错误。我建议这样做,并解决每个警告,尤其是那些报告缺少类型签名的警告。