haskell 我需要导入什么来执行位操作?

m528fe3b  于 2023-10-19  发布在  其他
关注(0)|答案(2)|浏览(136)

我尝试使用按位运算符,但我不知道需要导入什么。

$ cat tmp.hs
import Data.Word
import Data.Bits

mask = 0xff :: Word64
v = 98213 :: Word64

lsb = mask & v

这就是我所看到的

$ ghci tmp.hs 
GHCi, version 9.2.8: https://www.haskell.org/ghc/  :? for help
[1 of 1] Compiling Main             ( tmp.hs, interpreted )

tmp.hs:7:12: error:
    Variable not in scope: (&) :: Word64 -> Word64 -> t
  |
7 | lsb = mask & v
  |            ^
Failed, no modules loaded.
ghci>
wwtsj6pe

wwtsj6pe1#

您已经导入了此文件。但在Haskell中,按位运算符是**(.&.) :: Bits a => a -> a -> a(.|.) :: Bits a => a -> a -> a(.^.) :: Bits a => a -> a -> a**,因此:

lsb = mask .&. v
f4t66c6m

f4t66c6m2#

我想你是想用。&。从Data.Bits。在Haskell中,&操作数与$操作数的基址相反

相关问题