Index: doc/index.html ================================================================== --- doc/index.html +++ doc/index.html @@ -392,22 +392,64 @@
この言語の唯一の特徴的な部分は、「レイヤ」機能です。
++ひとつのコードに複数の「意味」を持たせるのが、レイヤ機能の目的です。 +
+
+普通に Polemy のコードを動かすと、そのコードは「@value レイヤ」で動作します。 +インタプリタで実験。 +
++ $ bin/polemy + Welcome to Polemy 0.1.0 + >> 1 + 2 + 3 ++この、普通に、数字の 1 は数字の 1 として、2 は 2 として、足し算は足し算として実行するのが、 +「@value レイヤ」です。 +レイヤを明示的に指定するには、レイヤ名( ... ) という構文を使います。 +なので、以下のように書いても同じ意味です。 +
+ >> @value( 1 + 2 ) + 3 ++他のレイヤで動かしてみましょう。適当に。「@hoge レイヤ」で。 +
+ >> @hoge( 3 ) + polemy.failure.RuntimeException@C:\Develop\Projects\Polemy\polemy\eval.d(138): + [+:4:8] lift function for @hoge is not registered +
+エラーになりました。Polemy のインタプリタは、起動時には、@value +レイヤでのコードの意味しか知りません。@hoge レイヤでは 3 +というのがどんな意味なのか、わかりません!というエラーが出ています。 +
++これを教えてあげるためには、@hoge レイヤの リフト関数 を定義します。 +
++ >> @@hoge = fun(x){ x*2 } + (function:1bdc5c0:1ba8580) ++
+「@ レイヤ名 = ...」文で、 +
+[Layers :: Overview] Polemy's runtime environment has many "layer"s. Usual execution run in the @value layer. @@ -954,11 +996,11 @@Page was generated with - on Sat Nov 27 20:49:57 2010 + on Sat Nov 27 22:01:28 2010