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

WinHugs98环境下Haskell Bits类型使用及Int异或操作实现

问题解决方法

错误原因

Bits是Haskell中定义位运算能力的类型类,不是可实例化的具体数据类型,不存在Bits这个数据构造器。你不需要手动将Int转换为所谓的Bits类型,Int类型本身已经实现了Bits类型类,可以直接调用位运算方法。

正确操作步骤

  1. 导入Data.Bits模块:
Hugs> :l Data.Bits
  1. 直接对两个Int数值执行xor运算即可,运算结果默认就是Int类型,可直接输出:
Data.Bits> 10 `xor` 11
1

如果需要显式指定类型避免歧义,可以添加类型标注:

Data.Bits> (10 :: Int) `xor` (11 :: Int)
1

类型转换方案(按需使用)

如果确实需要先转换为其他实现了Bits类型类的数值类型(如Word等)再运算,可以用fromIntegral方法做类型转换,运算完成后再转回Int即可,示例如下:

-- 先转为Word类型执行异或,再转回Int输出
Data.Bits> fromIntegral ((fromIntegral 10 :: Word) `xor` (fromIntegral 11 :: Word)) :: Int
1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 10:00:05