在Python中,我可以这样做:
import ctypes
import ctypes.util
my_lib = ctypes.cdll.LoadLibrary (ctypes.util.find_library ('my_lib') or 'my_lib32')
a = my_lib.some_function(33)
b = my_lib.some_function2(33)
c = my_lib.SOME_CONST_123
既然我需要将这种类型的Python代码转换为Haskell,那么我想知道在Haskell中我能否做到同样的事情?我知道我可以通过FFI这样做。但是这并不完全像在Python中所能做的,因为据我所知,在Haskell中我必须首先声明函数,如下所示:
foreign import ccall "my_lib.h some_function"
some_function :: CDouble -> CDouble
这是真的吗,有没有更简单的方法呢?