gpt4 book ai didi

haskell - 使用 Haskell 将 [Bool] 写入二进制文件

转载 作者:行者123 更新时间:2023-12-04 06:57:37 25 4
gpt4 key购买 nike

在 Haskell 中工作,我试图将一大堆 bool 值写入二进制文件。

我可以将 Word8(这是一个 8 位字)写入文件,但无法弄清楚如何将八个 Bool 的列表转换为 Word8。

这是我目前所拥有的:

toByte :: [Bool] -> Word8
toByte list = toByteh list 0 0

toByteh :: [Bool] -> Int -> Word8 -> Word8
toByteh list 8 _ = 0
toByteh list i result
| head list == True = toByteh (tail list) (i + 1) (result .|. (2^i :: Word8))
| otherwise = toByte_h (tail list) (i + 1) result

当我使用它时,我只得到一个 0 字节。任何人都可以看到这不起作用的地方吗?或者有更好的方法吗?

最佳答案

您正在从 0 开始对 i 进行计数,当您达到 8 时,您将返回 0。我想你是想返回 result :

toByteh list 8 result = result

关于haskell - 使用 Haskell 将 [Bool] 写入二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7724910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com