小编cha*_*ste的帖子

从Rust调用动态链接的Haskell代码

我正在尝试使用一些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)

macos haskell ffi rust

14
推荐指数
2
解决办法
493
查看次数

标签 统计

ffi ×1

haskell ×1

macos ×1

rust ×1