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 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 + >> 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 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 >> 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");