Pure から C のライブラリを使ってみる

裏で LLVM を使ってるんだぜすごいだろ的なサンプル。Pure で副作用を使う方法がよくわからないので(できないような気もする)カウンター関数を C で作って使ってみよう。
まずは counterlib.c と counter.pure を用意します。

/* counterlib.c */
int counter(){
  static int counter = 0;
  return counter++;
}
/* counter.pure */
using system;
using "lib:counterlib";
extern int counter();

printf "%d\n" counter;
printf "%d\n" counter;
printf "%d\n" counter;

次に counterlib.c をコンパイルします。

$ gcc -dynamiclib counterlib.c -o counterlib.dylib
$ 

実行してみよう。

$ pure counter.pure
0
1
2
$ 

簡単だね。