You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Haskell函数toBin使其适配Integer -> [Int]类型签名?

Haskell toBin 函数适配 Integer 入参的调整方案

你只需要根据你的输出需求选择对应调整方式即可:

方案1:保持输出为 [Int] 类型(完全匹配你的需求)

需要做2处调整:

  • 修改函数类型签名,将入参类型从Int替换为Integer
  • 对取余得到的Integer类型结果做类型转换,适配输出列表的Int元素类型
    修改后的完整代码如下:
toBin :: Integer -> [Int]
toBin n 
    | n == 0 = []
toBin n  = [fromIntegral (n `mod` 2)] ++ toBin (n `div` 2)

原理说明:div、mod、等值判断都属于Integral类型类的通用方法,Int和Integer都实现了该类型类,因此运算逻辑不需要修改,仅需要用fromIntegral方法完成整数类型的转换即可。

方案2:允许输出为 [Integer] 类型

仅需要修改类型签名即可,原有函数实现不需要做任何改动:

toBin :: Integer -> [Integer]
toBin n 
    | n == 0 = []
toBin n  = [n `mod` 2] ++ toBin (n `div` 2)

内容的提问来源于stack exchange,提问作者user17173786

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:54:02