[Yog] スクリプト言語Yogリビジョン181公開
Yogとは、なんですか?
Yogは、開発中のスクリプト言語です。以下の特徴を持っています。
- 関数の仮引数に式を記述できます。この式は、関数を実行するための事前条件となります。
- 関数を|演算子で結合して、新しい関数を作成することができます。この関数を呼び出した場合、事前条件に合致するものが前から順に探され、合致したものが自動的に選択されて実行されます。
例えば、フィボナッチ数を計算するスクリプトを、以下のように記述することができます。
def f0(0) 1 end def f1(1) 1 end def fn(n) callee()(n - 1) + callee()(n - 2) end print((f0 | f1 | fn)(25))
コンパイル
Yogのコンパイルには、Pythonが必要です。
ダウンロードしたファイルを展開したら、まずBoehmGCをconfigureします。
$ cd gc $ ./configure --disable-threads
次に、上のディレクトリに戻って、Yogをmakeします。
$ cd .. $ make
機能
Yogは生まれたばかりの言語です。以下の簡単な機能しか備わっていません。
- 整数の加算と減算
- 関数定義と関数呼び出し
- 関数の|演算
- 以下の組み込み関数
名前 | 機能 |
---|---|
引数を表示します。 | |
callee | 呼び出された関数を返します。「呼び出された関数」とは、最後に()をつけて呼び出された関数です。上のフィボナッチ数の例で、callee関数はfn内で使用されていますが、これは(f0 | f1 | fn)全体を指します。この中から、事前条件にあうものを自動的に探して呼び出します。つまり、引数が0の場合はf0, 1の場合はf1が呼び出されます(なので、フィボナッチ数を計算できるのです)。 |
いまはまだ、上のフィボナッチ数を計算するくらいのことしかできません。