Diff
Not logged in

Differences From Artifact [bdbfe9ee7589f910]:

To Artifact [7883429c0af25534]:


390 390 391 391 </span></dt> 392 392 <script>explorer.outline.writeEnabled = false;</script> 393 393 394 394 <dd><p> 395 395 この言語の唯一の特徴的な部分は、「レイヤ」機能です。 396 396 </p> 397 +<p> 398 +ひとつのコードに複数の「意味」を持たせるのが、レイヤ機能の目的です。 399 +</p> 397 400 398 401 <script>explorer.outline.incSymbolLevel();</script> 399 402 <dl> 400 403 <script>explorer.outline.writeEnabled = true;</script> 401 404 <dt><span class="decl"> 402 -<span class="currsymbol">Layers</span> 403 -<script>explorer.outline.addDecl('Layers');</script> 405 +<span class="currsymbol">概要</span> 406 +<script>explorer.outline.addDecl('概要');</script> 404 407 405 408 </span></dt> 406 409 <script>explorer.outline.writeEnabled = false;</script> 407 410 408 - <dd><pre> 411 + <dd><p> 412 +普通に Polemy のコードを動かすと、そのコードは「<tt>@value</tt> レイヤ」で動作します。 413 +インタプリタで実験。 414 +</p> 415 +<pre> 416 + $ bin/polemy 417 + Welcome to Polemy 0.1.0 418 + &gt;&gt; 1 + 2 419 + 3 420 +</pre> 421 +この、普通に、数字の 1 は数字の 1 として、2 は 2 として、足し算は足し算として実行するのが、 422 +「<tt>@value</tt> レイヤ」です。 423 +レイヤを明示的に指定するには、<tt>レイヤ名( ... )</tt> という構文を使います。 424 +なので、以下のように書いても同じ意味です。 425 +<pre> 426 + &gt;&gt; @value( 1 + 2 ) 427 + 3 428 +</pre> 429 +他のレイヤで動かしてみましょう。適当に。「<tt>@hoge</tt> レイヤ」で。 430 +<pre> 431 + &gt;&gt; @hoge( 3 ) 432 + polemy.failure.RuntimeException@C:\Develop\Projects\Polemy\polemy\eval.d(138): 433 + [<REPL>:4:8] lift function for @hoge is not registered 434 +</pre> 435 +<p> 436 +エラーになりました。Polemy のインタプリタは、起動時には、<tt>@value</tt> 437 +レイヤでのコードの意味しか知りません。<tt>@hoge</tt> レイヤでは <tt>3</tt> 438 +というのがどんな意味なのか、わかりません!というエラーが出ています。 439 +</p> 440 +<p> 441 +これを教えてあげるためには、<tt>@hoge</tt> レイヤの <font color=red><b>リフト関数</b></font> を定義します。 442 +</p> 443 +<pre> 444 + &gt;&gt; @@hoge = fun(x){ x*2 } 445 + (function:1bdc5c0:1ba8580) 446 +</pre> 447 +<p> 448 +「<tt>@ レイヤ名 = ...</tt>」文で、 449 +</p> 450 +<pre> 409 451 [Layers :: Overview] 410 452 411 453 Polemy's runtime environment has many "layer"s. 412 454 Usual execution run in the @value layer. 413 455 414 456 &gt;&gt; 1 + 2 415 457 3 ................................................................................ 952 994 <script>explorer.outline.decSymbolLevel();</script> 953 995 954 996 955 997 </td></tr> 956 998 <tr><td id="docfooter"> 957 999 Page was generated with 958 1000 <img src="candydoc/img/candydoc.gif" style="vertical-align:middle; position:relative; top:-1px"> 959 - on Sat Nov 27 20:49:57 2010 1001 + on Sat Nov 27 22:01:28 2010 960 1002 961 1003 </td></tr> 962 1004 </table> 963 1005 </div> 964 1006 <script> 965 1007 explorer.packageExplorer.addModule("index"); 966 1008 explorer.packageExplorer.addModule("main");