论坛: 公开讨论 (Thread #25346)

並列論理プログラミング言語:デカルトdescartes-0.17.0をリリース (2010-02-07 14:18 by hniwa #48382)

並列論理プログラミング言語:デカルトdescartes-0.17.0をリリースします。


今回のリリースには、デカルト言語で記述したlispインタプリターを
例題として付けました。
これは、解説用に作成したシンプルなlispなのですが、lambda関数を以下のように
書けるLispです。

λx (car x) '(a b c)
λxyz (* x (+ y z)) 9 8 7
λx λy λz (+ x (* y z)) 7 40 3
λxyz (* x (+ y z)) 9 8 7
(define f λx (* x 2))
(define (f x) (* x 2))
(define f (λ(x) (* x 2)))

どうでしょうか?興味あるかたは、ぜひ試してみてください。
リリースパッケージのexample/lispディレクトリの中のReadme.txtに説明
を書きました。また、以下のサイトにも解説記事を載せていきます。

 http://sourceforge.jp/projects/descartes/wiki/FrontPage


その他、変更点を以下に示します。

- デカルトLisp/λを例題として追加。
- デバッグ用トレース出力をONにする、-tオプション, --traceオプションを追加。
- 実行結果表示を行わない-rオプションを追加。
- オブジェクト名に変数を指定できるようにした。
- sysモジュールにseq述語を追加
- {}ループに、ループ内の結果を収集する変数を指定できるようにした。
- 符号付の整数と浮動小数点数の構文解析述語SNUMとSFNUMを追加。

以下のバグを修正しました。

- cygwin環境でncurses.hがなかった場合の対処
- オブジェクトのメソッドの動的削除ができない。
- string.hヘッダのインクルードの不足
- getline述語の再実行時に引数の変数がクリアされなかった。
- 長いリストの表示でSIGSEGV。
- NULLLINE述語の再実行時にファイルポインタが戻らない。


使用方法については、添付のドキュメントや以下のサイトを参照してください。

 http://sourceforge.jp/projects/descartes/wiki/FrontPage

今後もマルチコア機能、オブジェクト指向、データ解析および人工知能(AI)風のプログラム例を増やしていきます。


● ソースパッケージ
descartes-src-0.17.0.tar.gz 

  Linux上では、以下のようにコンパイルします。
$ ./configure; make
Cygwin上では以下のようにコンパイルします。
$ make -f Makefile.cygwin
Mingwでは、以下のようにcygwin上でコンパイルします。
$ make -f Makefile.mingw

● Windows用バイナリパッケージ 
descartes-win-0.17.0.zip