基本的な言語構造

「萌香」は式のまとまりを示すために、括弧を使用します。 括弧は"(, )", "「, 」", "あのね, 。"が使用できます。 括弧の対応は取れてなくてもかまいませんが、警告が出ます。

「萌香」にはCやBasicのように文という概念は無く、全てが式であり 値を返します。(Undef --- 未定義 --- も返される値の一つです。)

構文

self evaluator

「萌香」に数、文字列、真偽値などが与えられるとその値と なります。

シンボル

シンボルが与えられた場合、その束縛された値が評価の結果となります。 シンボルに値が束縛されていなかった場合、エラーとなります。

手続き呼び出し

括弧で囲まれたもの(リスト)が与えられた場合、 if、quoteが先頭に来た場合if、quote節として評価されます。 それ以外の場合、括弧の最後の部分が評価され、 その結果が組み込み文法、組み込み関数、クロージャの場合 (以下手続きと呼ぶ)、 括弧の残りの部分を引数としたそれぞれの呼び出しとなります。

評価した結果が数や文字列などだった場合エラーとなります。

手続きを評価した結果がその式の値となります。

クォート

「萌香」では関数等を評価するときに引数を評価してから渡します。 関数にリストやシンポルを渡すときに評価されると困ることが 多々あります。

そこで、quote文法を使うことで評価を回避します。

      (quote (1 2))  --> (1 2)
    

上の例の場合クォートを使うことによってリスト(1 2)を 評価せずに渡すことができました。

クォートは非常によく使われるのでシングルクォーテーション「'」を 使って以下のように略記できます。

      '(1 2) = (quote (1 2))