相关疑难解决方法(0)

从Java中调用Haskell函数的最佳方法

我正在寻找一种从Java程序中执行Haskell函数的有效方法.我已经考虑过使用exec()与GHC进行交互,但似乎应该有更好的方法.

java haskell ffi

21
推荐指数
2
解决办法
7266
查看次数

用C之间用Java调用Haskell

这可能听起来像是一场噩梦,但我真的很想让它发挥作用.我大部分时间都在使用这个例子:从Haskell调用C并尝试在ubuntu上运行.

我在java中运行它:

package test;

public class JniTest {
    public native int fib(int x);
}
Run Code Online (Sandbox Code Playgroud)

使用javah创建.h文件之后的这个:(test_JniTest.c)

#include "test_JniTest.h"
#include "Safe_stub.h"

JNIEXPORT jint JNICALL Java_test_JniTest_fib(JNIEnv * e, jobject o, jint f)
{
  return fibonacci_hs(f);
}
Run Code Online (Sandbox Code Playgroud)

然后在haskell中引用(在存根之前):( Safe.hs)

module Safe 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 …
Run Code Online (Sandbox Code Playgroud)

c java linux ubuntu haskell

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

ghc 7.4.1不生成stub.o文件

我在Ubuntu上运行默认的Haskell平台安装,当我运行这个例子时,http://www.haskell.org/haskellwiki/Calling_Haskell_from_C "ghc -c -O Safe.hs"没有生成Safe_stub.o文件.我已经在朋友盒上以及32位和64位Ubuntu安装上单独安装Ubuntu进行了检查.

有人可以确认这是否特定于ghc-7.4.1或仅安装Ubuntu?

谢谢!

haskell ffi ghc haskell-platform

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

标签 统计

haskell ×3

ffi ×2

java ×2

c ×1

ghc ×1

haskell-platform ×1

linux ×1

ubuntu ×1