Differences From Artifact [bdbfe9ee7589f910]:
- File
doc/index.html
- 2010-11-27 12:49:03 - part of checkin [a795c97dc3] on branch trunk - changed Let.init to Let.vdef. IT IS VERY DANGEROUS TO USE .init MEMBER NAME in D!!!!!!!! (user: kinaba) [annotate]
To Artifact [7883429c0af25534]:
- File
doc/index.html
- 2010-11-27 14:23:54 - part of checkin [005474ba5b] on branch trunk - changed: not to lift _|_ (user: kinaba) [annotate]
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 >> 1 + 2
> 419 3
> 420 </pre>
> 421 この、普通に、数字の 1 は数字の 1 として、2 は 2 として、足し算は足し算として実行するのが、
> 422 「<tt>@value</tt> レイヤ」です。
> 423 レイヤを明示的に指定するには、<tt>レイヤ名( ... )</tt> という構文を使います。
> 424 なので、以下のように書いても同じ意味です。
> 425 <pre>
> 426 >> @value( 1 + 2 )
> 427 3
> 428 </pre>
> 429 他のレイヤで動かしてみましょう。適当に。「<tt>@hoge</tt> イヤ」で。
> 430 <pre>
> 431 >> @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 >> @@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 >> 1 + 2 456 >> 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");