haskell - Haskell返回十六进制值的列表
问题描述
我正在尝试定义函数“decToHex”,它返回与给定数字的十六进制值相对应的字符列表。例如,1128 = ['4','6','8']
这是我的功能
decToHex :: Int -> [Char]
list = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"]
listHexa = []
decToHex x
| x < 16 = list !! x
| otherwise = decToHex (x `div` 16) : ((list !! (x `mod` 16)) : listHexa)
但我得到这个错误:
• Couldn't match type ‘[Char]’ with ‘Char’
Expected type: [Char]
Actual type: [[Char]]
• In the expression:
decToHex (x `div` 16) : ((list !! (x `mod` 16)) : listHexa)
我错过了什么?
解决方案
你list
的类型[String]
,因为每个字母都有一个String
。Char
相反,通过用单引号替换双引号使其成为列表。
推荐阅读
- python - 如何在 Python 的列表中找到每个重复的索引?
- java - java.security.cert.CertPathValidatorException:找不到证书路径的信任锚(Android Studio Java)
- mongodb - 如何创建一个聚合管道,用于在 MongoDB 中按公共值对对象数组进行分组?
- numpy - PySpark:在访问 RowMatrix 对象期间出现错误“没有名为 'numpy' 的模块”
- reactjs - 如何根据身份验证状态和角色显示不同的导航栏?
- javascript - 我在使用这个 ajax 计时器时遇到问题,它没有按照我的预期执行并且没有执行
- html - 如何将 JSON 对象用于src 标签?
- firebase - 无法从其他文件方法访问参数
- python - 为什么 Tensorflow 张量索引在标准化流“概率”方法中失败
- typescript - 如何使 Typescript 接口属性依赖于另一个属性