我正在尝试使用图像库在Haskell中进行一些图像处理.使用库打开图像需要一个ByteString类型.我想在ghci中测试库,但是当我加载文件时它有类型IO ByteString而不能使用.
如何ByteString从IO ByteStringghci中的类型解压缩数据?
我试图找到一个字母的ord值的变量(a = 97,A = 65),以使我的代码更容易阅读.我发现Data.Word8模块以下列方式为字符定义了一些变量:
_a = 0x61
_b = 0x62
_c = 0x63
_d = 0x64
Run Code Online (Sandbox Code Playgroud)
等等
但是,当我尝试使用这些变量时,我收到以下错误:
Found hole `_x' with type: t
Where: `t' is a rigid type variable bound by
the inferred type of it :: t at <interactive>:27:1
Relevant bindings include it :: t (bound at <interactive>:27:1)
In the expression: _x
In an equation for `it': it = _x
Run Code Online (Sandbox Code Playgroud)
这是我第一次遇到打孔.在看了打孔的介绍后,我仍然不明白(a)为什么Data.Word8使用它们和(b)打字孔如何出现在等号的LHS上.在我介绍的介绍中,它们只出现在RHS上(c)如何在我的代码中使用这些变量?
如果有人有解释,将不胜感激.
编辑:我觉得现在有点蠢.我正在将Data.Word8包与Data.Word包含Word8数据类型的包混合在一起.
有没有办法通过用另一种类型包装类型来制作混合类型列表?
例如,如果我有两种数据类型,Cat并且Dog,我可以使用Pet包装器之类的东西制作猫和狗的列表吗?我知道这可以使用代数数据类型完成,但我也希望其他包装器可用,例如Animal.
我想要使用它的基本方法如下:
data Cat = Cat
data Dog = Dog
data Cow = Cow
data Pet a = Pet a
data Animal a = Animal a
pets = [Pet Cat, Pet Dog]
animals = [Animal Cat, Animal Dog, Animal Cow]
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?我还在考虑是否可以使用类型类.
如果我有一个可变向量(IOVector a例如类型),是否有类似地图的函数可以修改元素到位?
该vector包提供了该modify功能,但这一次只有一个元素.我应该使用它还是有首选方法?
并且为了澄清,矢量的类型将在之前和之后相同.
我正在学习如何使用汇编语言(顺便说一句在Raspberry Pi上),并且想知道使用gcc和as进行编译之间有什么区别。
到目前为止,我注意到的差异是:
as。as似乎比单独识别要好gcc。gcc在使用整数除法之类的指令之前,我必须告诉架构。gcc我可以很方便地在C标准库函数。我认为可以使用,as但我还没有弄清楚。我想坚持使用特定的编译器。我应该知道还有什么其他区别。使用这两种方法都有优点/缺点吗?