トップ «前の日記(2005-06-29) 最新 次の日記(2005-07-01)» 月表示 編集

日々の流転


2005-06-30 [長年日記]

λ. The 2005 GHC survey

出てますよ。

Tags: haskell

λ. 『道路の経済学』 松下 文洋

道路の経済学 (講談社現代新書)(松下 文洋) を読んだ。

Tags:

λ. CのプログラムからHaskellの関数を呼び出す

soutaroさんの「CのプログラムからOCamlの関数を呼び出す」というエントリに触発されて、Haskellの場合について書いて見た。OCamlの場合に比べると幾分面倒くさい。

Foo.hs
module Foo where
 
import Foreign.C
 
f :: CInt -> CInt
f x = x + 1
 
foreign export ccall "f" f :: CInt -> CInt
main.c
#include <stdio.h>
#include "HsFFI.h"
 
#ifdef __GLASGOW_HASKELL__
#include "Foo_stub.h"
extern void __stginit_Foo ( void );
#endif
 
int main(int argc, char *argv[])
{
  hs_init(&argc, &argv);
#ifdef __GLASGOW_HASKELL__
  hs_add_root(__stginit_Foo);
#endif
 
  printf("f(%d) = %d\n", 3, f(3));
 
  hs_exit();
  return 0;
}
コンパイル
% ghc --make -fglasgow-exts Foo.hs
% ghc -c main.c
% ghc --make -fglasgow-exts -no-hs-main Foo.hs main.o

一行目は Foo_stub.* を作るため。

ここでは書かなかったが、実行時にHaskellの関数をCの関数に変換することも一応出来る。

Tags: haskell

λ. 哺乳類と昆虫を混ぜると……

グロ注意。

本日のツッコミ(全3件) [ツッコミを入れる]
ψ takot (2005-07-01 03:06)

まぜるな危険!

ψ takot (2005-07-01 14:00)

……とコメント書いてから見たけど,それほどグロくなかった.<br>二枚目の犬顔イモムシは前に見たことあるなこれ.

ψ さかい (2005-07-01 14:41)

ナイスツッコミ!<br>でも、蓮コラがダメでこれが大丈夫ってのは何か納得いかん(ぉ