我正在尝试使用一些Haskell代码编译一些Rust代码.我有一个测试系统设置了一个文件,Fibonacci.hs其中一个函数在Haskell中计算斐波纳契数,并fibonacci_hs通过Haskell的FFI 导出函数(如下所示:https://github.com/nh2/haskell-from-python,尽管我将在底部复制并粘贴,并且wrapper.c已经定义了要导出的函数,以便初始化和退出Haskell的RTS.
代码如下所示:
{- Fibonacci.hs -}
{-# LANGUAGE ForeignFunctionInterface #-}
module Fibonacci where
import Foreign.C.Types
fibonacci :: Int -> Int
fibonacci n = fibs !! n
where fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
fibonacci_hs :: CInt -> CInt
fibonacci_hs = fromIntegral . fibonacci . fromIntegral
foreign export ccall fibonacci_hs :: CInt -> CInt
Run Code Online (Sandbox Code Playgroud)
// wrapper.c
#include <stdlib.h>
#include "HsFFI.h"
void
example_init (void)
{
hs_init (NULL, …Run Code Online (Sandbox Code Playgroud)