The descartes language is designed as a computer language that centered on the logical reasoning.
It is logical inferences and search functions that I aims. Moreover, the object group with the functional programming function is the intellectual system that works in parallel at the multi core. In addition, this language operates by I/F of the syntax that closes to human beings.
The descartes language is named commemorating the Descartes. René Descartes is a famous philosopher and a mathematician.
並列論理プログラミング言語:デカルト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
変更点を以下に示します。
- デカルトLisp/λを例題として追加。
- デバッグ用トレース出力をONにする、-tオプション, --traceオプションを追加。
- 実行結果表示を行わない-rオプションを追加。
- オブジェクト名に変数を指定できるようにした。
- sysモジュールにseq述語を追加
- {}ループに、ループ内の結果を収集する変数を指定できるようにした。
- 符号付の整数と浮動小数点数の構文解析述語SNUMとSFNUMを追加。
以下のバグを修正しました。
- cygwin環境でncurses.hがなかった場合の対処
- オブジェクトのメソッドの動的削除ができない。
- string.hヘッダのインクルードの不足
- getline述語の再実行時に引数の変数がクリアされなかった。
- 長いリストの表示でSIGSEGV。
- NULLLINE述語の再実行時にファイルポインタが戻らない。