Diff
Not logged in

Differences From Artifact [bd75516fd263e529]:

To Artifact [49fcca2a72fbb7a0]:


284 以下のデータ型があります。 284 以下のデータ型があります。 285 </p> 285 </p> 286 <ul> 286 <ul> 287 <li>整数: <tt>0</tt>, <tt>123</tt>, <tt>456666666666666666666666666666666666 287 <li>整数: <tt>0</tt>, <tt>123</tt>, <tt>456666666666666666666666666666666666 288 <li>文字列: <tt>"hello, world!"</tt>, ...</li> 288 <li>文字列: <tt>"hello, world!"</tt>, ...</li> 289 <li>関数: <tt>fun(x){x+1}</tt></li> 289 <li>関数: <tt>fun(x){x+1}</tt></li> 290 <li>テーブル: <tt>{car: 1, cdr: {car: 2, cdr: {}}}</tt></li> 290 <li>テーブル: <tt>{car: 1, cdr: {car: 2, cdr: {}}}</tt></li> 291 <li>未定義値: (テーブルの、存在しないフィールドにアクセたりすると作れます)</li> | 291 <li>未定義値: (undefined。特殊なケー作られます)</li> 292 </ul> 292 </ul> 293 <p> 293 <p> 294 関数はいわゆる「クロージャ」です。静的スコープで外側の環境にアクセスできます。 294 関数はいわゆる「クロージャ」です。静的スコープで外側の環境にアクセスできます。 295 テーブルはいわゆるプロトタイプチェーンを持っていて、 295 テーブルはいわゆるプロトタイプチェーンを持っていて、 296 自分にないフィールドの場合は親に問い合わせが行く感じになっていますが、 296 自分にないフィールドの場合は親に問い合わせが行く感じになっていますが、 297 フィールドの書き換えがないので、これは特に意味ないかもしれない…。 297 フィールドの書き換えがないので、これは特に意味ないかもしれない…。 298 </p> 298 </p> > 299 <p> > 300 また、リストを扱うために、いわゆる「cons リスト」を使います。 > 301 空リストを <tt>{}</tt>、1個以上要素があるものを <tt>{car: 先頭要素, cdr: 二番目以降のリスト}</tt> > 302 という形で。この形でリストを扱わなければならないとい決まりはありませんが、 > 303 この形は特別扱いされて <tt>print</tt> で綺麗に出力されたります。 > 304 </p> 299 </dd> 305 </dd> 300 306 301 <script>explorer.outline.writeEnabled = true;</script> 307 <script>explorer.outline.writeEnabled = true;</script> 302 <dt><span class="decl"> 308 <dt><span class="decl"> 303 <span class="currsymbol">パターンマッチ</span> 309 <span class="currsymbol">パターンマッチ</span> 304 <script>explorer.outline.addDecl('パターンマッチ');</script> 310 <script>explorer.outline.addDecl('パターンマッチ');</script> 305 311 ................................................................................................................................................................................ 608 ) 614 ) 609 }; 615 }; 610 616 611 Here, x is a syntax tree but n is an actual integer. If you read carefully, 617 Here, x is a syntax tree but n is an actual integer. If you read carefully, 612 you should get what is going on. Basically, @macro can be considered like 618 you should get what is going on. Basically, @macro can be considered like 613 quasiquoting and @value to be an escape from it. 619 quasiquoting and @value to be an escape from it. 614 </pre> 620 </pre> > 621 <p> > 622 構文木がどのようなテーブルで渡されてくるかについてはソースドキュメントの > 623 <a href="http://www.kmonos.net/repos/polemy/doc/tip/doc/ast.html">polemy.ast</a> > 624 のページをご覧下さい。例えば変数名を表す <code>Var</code> ラスには、 > 625 継承の分も合わせて > 626 <tt><a href="http://www.kmonos.net/repos/polemy/doc/tip/doc/failure.html">LexPos > 627 と <tt>string name;</tt> の2つのメンバがあるので > 628 </p> > 629 <pre> > 630 { is: "Var", > 631 pos: {filename:"foo.pmy", lineno:123, column:45}, > 632 name: "x" } > 633 </pre> > 634 <p> > 635 こんな感じのテーブルになります。 > 636 クラス名が <tt>is</tt> フィールドに、メンバ変数はそのまま名前で入ります。 > 637 配列メンバは cons リストになって入ってきます。 > 638 </p> 615 </dd> 639 </dd> 616 640 617 <script>explorer.outline.writeEnabled = true;</script> 641 <script>explorer.outline.writeEnabled = true;</script> 618 <dt><span class="decl"> 642 <dt><span class="decl"> 619 <span class="currsymbol">微妙な挙動</span> 643 <span class="currsymbol">微妙な挙動</span> 620 <script>explorer.outline.addDecl('微妙な挙動');</script> 644 <script>explorer.outline.addDecl('微妙な挙動');</script> 621 645 ................................................................................................................................................................................ 776 <script>explorer.outline.decSymbolLevel();</script> 800 <script>explorer.outline.decSymbolLevel();</script> 777 801 778 802 779 </td></tr> 803 </td></tr> 780 <tr><td id="docfooter"> 804 <tr><td id="docfooter"> 781 Page was generated with 805 Page was generated with 782 <img src="candydoc/img/candydoc.gif" style="vertical-ali 806 <img src="candydoc/img/candydoc.gif" style="vertical-ali 783 on Wed Nov 24 19:09:31 2010 | 807 on Wed Nov 24 20:33:08 2010 784 808 785 </td></tr> 809 </td></tr> 786 </table> 810 </table> 787 </div> 811 </div> 788 <script> 812 <script> 789 explorer.packageExplorer.addModule("index"); 813 explorer.packageExplorer.addModule("index"); 790 explorer.packageExplorer.addModule("main"); 814 explorer.packageExplorer.addModule("main");