Diff
Not logged in

Differences From Artifact [bdbfe9ee7589f910]:

To Artifact [7883429c0af25534]:


390 390 391 </span></dt> 391 </span></dt> 392 <script>explorer.outline.writeEnabled = false;</script> 392 <script>explorer.outline.writeEnabled = false;</script> 393 393 394 <dd><p> 394 <dd><p> 395 この言語の唯一の特徴的な部分は、「レイヤ」機能です。 395 この言語の唯一の特徴的な部分は、「レイヤ」機能です。 396 </p> 396 </p> > 397 <p> > 398 ひとつのコードに複数の「意味」を持たせるのが、レイヤ能の目的です。 > 399 </p> 397 400 398 <script>explorer.outline.incSymbolLevel();</script> 401 <script>explorer.outline.incSymbolLevel();</script> 399 <dl> 402 <dl> 400 <script>explorer.outline.writeEnabled = true;</script> 403 <script>explorer.outline.writeEnabled = true;</script> 401 <dt><span class="decl"> 404 <dt><span class="decl"> 402 <span class="currsymbol">Layers</span> | 405 <span class="currsymbol">概要</span> 403 <script>explorer.outline.addDecl('Layers');</script> | 406 <script>explorer.outline.addDecl('概要');</script> 404 407 405 </span></dt> 408 </span></dt> 406 <script>explorer.outline.writeEnabled = false;</script> 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 [Layers :: Overview] 451 [Layers :: Overview] 410 452 411 Polemy's runtime environment has many "layer"s. 453 Polemy's runtime environment has many "layer"s. 412 Usual execution run in the @value layer. 454 Usual execution run in the @value layer. 413 455 414 &gt;&gt; 1 + 2 456 &gt;&gt; 1 + 2 415 3 457 3 ................................................................................................................................................................................ 952 <script>explorer.outline.decSymbolLevel();</script> 994 <script>explorer.outline.decSymbolLevel();</script> 953 995 954 996 955 </td></tr> 997 </td></tr> 956 <tr><td id="docfooter"> 998 <tr><td id="docfooter"> 957 Page was generated with 999 Page was generated with 958 <img src="candydoc/img/candydoc.gif" style="vertical-ali 1000 <img src="candydoc/img/candydoc.gif" style="vertical-ali 959 on Sat Nov 27 20:49:57 2010 | 1001 on Sat Nov 27 22:01:28 2010 960 1002 961 </td></tr> 1003 </td></tr> 962 </table> 1004 </table> 963 </div> 1005 </div> 964 <script> 1006 <script> 965 explorer.packageExplorer.addModule("index"); 1007 explorer.packageExplorer.addModule("index"); 966 explorer.packageExplorer.addModule("main"); 1008 explorer.packageExplorer.addModule("main");