小编use*_*074的帖子

外部函数接口(FFI)如何与Stack一起使用?

我正在关注一些FFI教程和示例(这里这里),我想知道在使用堆栈时应该改变什么?

在这些示例中,源C文件使用gcc -c -o termops.o termops.c包含在gcc编译中并包含在目标文件中ghc --make -main-is FfiEx -o ffi_ex FfiEx.hs termops.o.如何使用堆栈完成等效?

c haskell ffi haskell-stack

2
推荐指数
1
解决办法
384
查看次数

在ghci中解压缩IO ByteString

我正在尝试使用图像库在Haskell中进行一些图像处理.使用库打开图像需要一个ByteString类型.我想在ghci中测试库,但是当我加载文件时它有类型IO ByteString而不能使用.

如何ByteStringIO ByteStringghci中的类型解压缩数据?

haskell ghci

1
推荐指数
1
解决办法
136
查看次数

ASCII字符变量在Data.Word8中的作用

我试图找到一个字母的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数据类型的包混合在一起.

haskell

1
推荐指数
1
解决办法
62
查看次数

在Haskell中使用包装器的混合类型列表

有没有办法通过用另一种类型包装类型来制作混合类型列表?

例如,如果我有两种数据类型,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)

有没有办法做到这一点?我还在考虑是否可以使用类型类.

haskell

1
推荐指数
1
解决办法
214
查看次数

是否存在可变载体的就地映射函数?

如果我有一个可变向量(IOVector a例如类型),是否有类似地图的函数可以修改元素到位?

vector包提供了该modify功能,但这一次只有一个元素.我应该使用它还是有首选方法?

并且为了澄清,矢量的类型将在之前和之后相同.

haskell vector

1
推荐指数
1
解决办法
100
查看次数

使用gcc和as编译汇编之间有什么区别

我正在学习如何使用汇编语言(顺便说一句在Raspberry Pi上),并且想知道使用gccas进行编译之间有什么区别。

到目前为止,我注意到的差异是:

  • 我应该使用做额外的链接步骤as
  • 在Raspberry Pi上,as似乎比单独识别要好gccgcc在使用整数除法之类的指令之前,我必须告诉架构。
  • 随着gcc我可以很方便地在C标准库函数。我认为可以使用,as但我还没有弄清楚。

我想坚持使用特定的编译器。我应该知道还有什么其他区别。使用这两种方法都有优点/缺点吗?

assembly gcc gnu-assembler raspberry-pi

1
推荐指数
1
解决办法
59
查看次数

标签 统计

haskell ×5

assembly ×1

c ×1

ffi ×1

gcc ×1

ghci ×1

gnu-assembler ×1

haskell-stack ×1

raspberry-pi ×1

vector ×1