最初の例は、新しい組み込み述語 print_it(String,Length)を書く場合を示しています。この述語は、与えられた文字列をプリントし、その長さを返してきます。
C言語で書かれたプログラムをIF/Prologにリンクする前に、もう一度テスト(デバッグも!)しておいた方がいいでしょう。この関数がCでのみ実行されるように書かれたプログラムを示します。(main()関数を加えなければならないということです。)
/* -------------------------------------------------- */ /* filename : $PROROOT/demos/c/printit.c */ /* -------------------------------------------------- */ main() /* test routine for stand alone program */ { int string_length; if (Printit("hi there", &string_length) != 0) { printf("C-predicate Printit has succeeded\n\n"); printf("string length = %d\n", string_length); } }
/* -------------------------------------------------- */ Printit(text, length) /* simple output routine */ char *text; int *length; { printf("text = %s\n", text); *length= strlen(text); return 1; } /* -------------------------------------------------- */
プログラムをテストするためにコンパイルし実行させると、結果は以下のようになります。
% cc -o printit printit.c % printit text = hi there C-Predicate printit has succeeded
string length = 8 %
C関数のIF/PrologのC述語への変換
C述語ためのコンパイルとリンク
ライブラリ関数を使ったプログラム例
あなたのプログラムが動かない場合
戻る
続く..