Differences From Artifact [33d07971634f6989]:
- File        
index.dd
- 2010-11-27 15:49:30 - part of checkin [6de3d8df3a] on branch trunk - reference manual completed (user: kinaba) [annotate]
 
 
To Artifact [a39b25f2bef916f0]:
- File        
index.dd
- 2010-11-27 23:46:51 - part of checkin [576c494e53] on branch trunk - fixed: literal "..." is now lifted in user-defined layers (user: kinaba) [annotate]
 
 
   13  <p>                                                                                   13  <p>
   14  あと、 やたらとマクロの章が長くなっていますが、 この部分は、                                                       14  あと、 やたらとマクロの章が長くなっていますが、 この部分は、
   15  レイヤ機能を入れたら自動的にすごく自然にマクロが入るなーと思って、                                                     15  レイヤ機能を入れたら自動的にすごく自然にマクロが入るなーと思って、
   16  おまけで実装してみた程度のものです。                                                                    16  おまけで実装してみた程度のものです。
   17  あんまり重要ではないので、適当にスルーして下さいませ。                                                           17  あんまり重要ではないので、適当にスルーして下さいませ。
   18  単に、適当に入れたら適当で微妙な部分が多く残ってしまったので注意書きが増えているだけで…。                                         18  単に、適当に入れたら適当で微妙な部分が多く残ってしまったので注意書きが増えているだけで…。
   19  </p>                                                                                  19  </p>
                                                                                        >    20  <p>
                                                                                        >    21  言い訳ついでにもう一つ言い訳ですが、この言語は、少なとも今のところ、
                                                                                        >    22  実用に使うことを考えた設計にはなっていません。どちらというと、
                                                                                        >    23  Brainfuck や Unlambda や Whitespace の仲間と思ってお使い下さい。
                                                                                        >    24  </p>
   20                                                                                        25  
   21  $(DDOC_MEMBERS                                                                        26  $(DDOC_MEMBERS
   22                                                                                        27  
   23  $(SECTION Syntax, $(SECBODY                                                           28  $(SECTION Syntax, $(SECBODY
   24  <p>                                                                                   29  <p>
   25  文法について。                                                                               30  文法について。
   26  字句解析がわりと適当なので、                                                                        31  字句解析がわりと適当なので、
................................................................................................................................................................................
  519  </p>                                                                                 524  </p>
  520  <pre>                                                                                525  <pre>
  521      @@type = fun(x) {                                                                526      @@type = fun(x) {
  522         if( _isint(x) ) then "int"                                                    527         if( _isint(x) ) then "int"
  523         else if( _isstr(x) ) then "str"                                               528         else if( _isstr(x) ) then "str"
  524         else if( _isbot(x) ) then "runtime error"                                     529         else if( _isbot(x) ) then "runtime error"
  525         else "type error"                                                             530         else "type error"
  526      }                                                                            |   531      };
  527  </pre>                                                                               532  </pre>
  528  <pre>                                                                                533  <pre>
  529      >> @type( 1 )                                                              534      >> @type( 1 )
  530      int                                                                              535      int
  531      >> @type( 2 )                                                              536      >> @type( 2 )
  532      int                                                                              537      int
  533      >> @type( "foo" )                                                          538      >> @type( "foo" )
................................................................................................................................................................................
  568  </p>                                                                                 573  </p>
  569  <pre>                                                                                574  <pre>
  570     @type "if" (c, t, e) {@value(                                                     575     @type "if" (c, t, e) {@value(
  571        if( @type(c)=="int" || @type(c)=="runtime error" ) then                        576        if( @type(c)=="int" || @type(c)=="runtime error" ) then
  572           @type( int_int_int(t(), e()) )                                              577           @type( int_int_int(t(), e()) )
  573        else                                                                           578        else
  574           "type error"                                                                579           "type error"
  575     )}                                                                            |   580     )};
  576  </pre>                                                                               581  </pre>
  577  <p>                                                                                  582  <p>
  578  関数が自動リフトされるので、フィボナッチ関数の型を調べることができます。                                                 583  関数が自動リフトされるので、フィボナッチ関数の型を調べることができます。
  579  </p>                                                                                 584  </p>
  580  <pre>                                                                                585  <pre>
  581     >> def fib(x) { if x<2 then 1 else fib(x-1)+fib(x-2) };                     586     >> def fib(x) { if x<2 then 1 else fib(x-1)+fib(x-2) };
  582     >> @type( fib(100000000000000) )                                            587     >> @type( fib(100000000000000) )