「Lush (プログラム言語)」の版間の差分
46行目: | 46行目: | ||
====値の設定と参照==== |
====値の設定と参照==== |
||
< |
<syntaxhighlight lang="lisp"> |
||
? (defvar m (matrix 2 3)) ;; 多次元配列の定義 |
? (defvar m (matrix 2 3)) ;; 多次元配列の定義 |
||
= () |
= () |
||
58行目: | 58行目: | ||
? (m 1 2) ;; 要素 (1,2) の値を表示 |
? (m 1 2) ;; 要素 (1,2) の値を表示 |
||
= 5 |
= 5 |
||
</syntaxhighlight> |
|||
</source> |
|||
====スライス==== |
====スライス==== |
||
< |
<syntaxhighlight lang="lisp"> |
||
? (select m 1 2) ;; 1次元目の方向での二つ目のスライスを選択 |
? (select m 1 2) ;; 1次元目の方向での二つ目のスライスを選択 |
||
= [ 0.00 5.00 ] |
= [ 0.00 5.00 ] |
||
68行目: | 68行目: | ||
= [[ 0.00 0.00 ] |
= [[ 0.00 0.00 ] |
||
[ 0.00 5.00 ]] |
[ 0.00 5.00 ]] |
||
</syntaxhighlight> |
|||
</source> |
|||
====リスト==== |
====リスト==== |
||
配列は、その配列と同じ構造を持ったリストに変換でき、またリストから配列を生成することもできる。 |
配列は、その配列と同じ構造を持ったリストに変換でき、またリストから配列を生成することもできる。 |
||
< |
<syntaxhighlight lang="lisp"> |
||
? (m () () (range 6)) |
? (m () () (range 6)) |
||
= [[ 1.00 2.00 3.00 ] |
= [[ 1.00 2.00 3.00 ] |
||
78行目: | 78行目: | ||
? (m () ()) |
? (m () ()) |
||
= ((1 2 3) (4 5 6)) |
= ((1 2 3) (4 5 6)) |
||
</syntaxhighlight> |
|||
</source> |
|||
== 参照 == |
== 参照 == |
2020年7月6日 (月) 00:30時点における版
作者 | Leon Bottou、Yann LeCun、Jie Huang Fu. |
---|---|
開発元 | Various |
初版 | 1980年代初頭 |
最新版 |
2.0.1[1]
/ 2011年3月12日 |
リポジトリ | |
対応OS | POSIX 準拠の複数のオペレーティングシステム |
プラットフォーム | クロスプラットフォーム |
対応言語 | Common Lisp |
種別 | インタープリタ |
ライセンス | パブリック・ドメイン |
公式サイト | http://lush.sourceforge.net/ |
Lush は LISP にオブジェクト指向の機能を加えた言語処理系であり、機械学習ソフトウェアのためのスクリプト言語として開発された。機械学習には数値計算によるもの、GUI を備えるものなど多数合ったが、Lush はより汎用であり、オペレーティングシステムなどのシステム寄りの記述もでき、ネットワーク・プログラミングや計算機管理といったアプリケーションにも対応している。Lush で書かれたプログラムはC言語に変換され、多次元配列処理エンジンが組み込まれる。Lush の開発はオープンソースプロジェクトとして続けられており、GPL にしたがった利用、配布が認められている。Lush には、多くのライブラリ (ALSA、BLAS、FFTW、GNU Scientific Library(GSL)、HTK、LAPACK、MPI、OpenGL、OpenCV、SDL、Video4Linux など) を利用するためのインターフェイス (C言語および Lush 自身で書かれている) が用意されている。Lush プロジェクトの創始者 Léon Bottou、Yann LeCun は、実行環境として POSIX 準拠のシステム(BSD、UNIX系のオペレーティングシステム)、Linux、Solaris、IRIX を想定し、Sourceforge で開発を続けている。言語の名前「Lush」は「LISP統合シェル」を意味する英語の「LISP universal shell」に由来する。
機能
ヘルプ
Lush はコマンドライン・インターフェイスでの対話的な動作により、簡便な入出力ができる。
ヘルプを表示するには、コマンドライン・インターフェイスで以下のようにする。
? (helptool)
ディスプレイ上にマニュアルやチュートリアルを表示するウィンドウが開かれる。
コマンドライン・インターフェイス内で関数の解説を見るには、以下のようにする。
?^Adraw-line
こうすると、drawline
関数のヘルプが表示される。
配列操作
N-次元の多次元配列と、LISP 風の書き方の両方を同時に使うことができる。
値の設定と参照
? (defvar m (matrix 2 3)) ;; 多次元配列の定義
= ()
? m ;; 配列の表示
= [[ 0.00 0.00 0.00 ]
[ 0.00 0.00 0.00 ]]
? (m 1 2 5) ;; (1,2) の要素の値を 5 に設定
= [[ 0.00 0.00 0.00 ]
[ 0.00 0.00 5.00 ]]
? (m 1 2) ;; 要素 (1,2) の値を表示
= 5
スライス
? (select m 1 2) ;; 1次元目の方向での二つ目のスライスを選択
= [ 0.00 5.00 ]
? (narrow m 1 2 1) ;; 1次元目方向のサイズを 2 に縮小し、オフセットを1 にする
= [[ 0.00 0.00 ]
[ 0.00 5.00 ]]
リスト
配列は、その配列と同じ構造を持ったリストに変換でき、またリストから配列を生成することもできる。
? (m () () (range 6))
= [[ 1.00 2.00 3.00 ]
[ 4.00 5.00 6.00 ]]
? (m () ())
= ((1 2 3) (4 5 6))