OSDN Git Service

タグを打ち忘れていたついでに、html版ドキュメントを追加しました。
[ring-lang-081/ring.git] / docs / build / html / functions.html
diff --git a/docs/build/html/functions.html b/docs/build/html/functions.html
new file mode 100644 (file)
index 0000000..d677cfc
--- /dev/null
@@ -0,0 +1,311 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>関数 - 第一形式 &mdash; プログラミング言語 Ring 1.12 取扱説明書</title>
+    
+    <link rel="stylesheet" href="_static/bootstrap-astropy.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '1.12',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <script type="text/javascript" src="_static/translations.js"></script>
+    <link rel="top" title="プログラミング言語 Ring 1.12 取扱説明書" href="index.html" />
+    <link rel="next" title="関数 - 第二形式" href="functions2.html" />
+    <link rel="prev" title="標準入力の取得" href="getinput.html" />
+    <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,600' rel='stylesheet' type='text/css'/>
+
+  </head>
+  <body role="document">
+<div class="topbar">
+  <a class="brand" title="Documentation Home" href="index.html"><span id="logotext1">&#x1f369;Ring</span><span id="logotext2"> 1.12</span><span id="logotext3">:docs</span></a>
+  <ul>
+    
+    <li><a href="http://ring-lang.sourceforge.net/news.html">News</a></li>
+    <li><a href="http://ring-lang.sourceforge.net/download.html">Download</a></li>
+    <li><a href="https://groups.google.com/forum/#!forum/ring-lang">Get Help</a></li>
+    <li><a href="https://github.com/ring-lang/ring">Contribute</a></li>
+    <li><a href="http://ring-lang.sourceforge.net/resources.html">Resources</a></li>
+    <li><a href="http://ring-lang.sourceforge.net/team.html">Team</a></li>
+    
+    <li><a title="Ring Homepage" href="http://ring-lang.net/">Website</a></li>
+    <li><a title="総合索引" href="genindex.html">Index</a></li>
+    <li>
+      
+      
+<form action="search.html" method="get">
+  <input type="text" name="q" placeholder="Search" />
+  <input type="hidden" name="check_keywords" value="yes" />
+  <input type="hidden" name="area" value="default" />
+</form>
+      
+    </li>
+  </ul>
+</div>
+
+<div class="related">
+    <h3>ナビゲーション</h3>
+    <ul>
+      <li class="right">
+       <a href="functions2.html" title="関数 - 第二形式">
+         next &raquo;
+       </a>
+      </li>
+      <li class="right">
+       <a href="getinput.html" title="標準入力の取得">
+         &laquo; previous
+       </a>
+        |
+      </li>
+      <li>
+       <a href="index.html">プログラミング言語 Ring 1.12 取扱説明書</a>
+        &raquo;
+      </li>
+      
+      <li>関数 - 第一形式</li> 
+    </ul>
+</div>
+  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="index-0">
+<span id="id1"></span><h1>関数 - 第一形式<a class="headerlink" href="#index-0" title="このヘッドラインへのパーマリンク">¶</a></h1>
+<p>第一形式による関数の用法を学びます。</p>
+<ul class="simple">
+<li>関数の定義</li>
+<li>関数の呼び出し</li>
+<li>仮引数の宣言</li>
+<li>仮引数の送信</li>
+<li>メイン関数</li>
+<li>変数のスコープ</li>
+<li>返値</li>
+<li>再帰処理</li>
+</ul>
+<div class="section" id="index-1">
+<span id="id2"></span><h2>関数の定義<a class="headerlink" href="#index-1" title="このヘッドラインへのパーマリンク">¶</a></h2>
+<p>新しい関数を定義するには</p>
+<p>文法:</p>
+<div class="highlight-ring"><div class="highlight"><pre>func &lt;関数名&gt; [仮引数]
+        ステートメント・ブロック
+[end]
+</pre></div>
+</div>
+<div class="admonition note">
+<p class="first admonition-title">注釈</p>
+<p class="last">関数の定義において end キーワードはオプション扱いです。</p>
+</div>
+<p>用例:</p>
+<div class="highlight-ring"><div class="highlight"><pre><span class="k">func</span> <span class="n">hello</span>
+        <span class="k">see</span> <span class="s">&quot;Hello from function&quot;</span> <span class="o">+</span> <span class="n">nl</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="index-2">
+<span id="id3"></span><h2>関数の呼び出し<a class="headerlink" href="#index-2" title="このヘッドラインへのパーマリンク">¶</a></h2>
+<p>仮引数を指定せずに関数を呼び出すには、関数名末尾に () を入力します。</p>
+<div class="admonition tip">
+<p class="first admonition-title">ちなみに</p>
+<p class="last">関数の定義、および関数のコードの記述前に関数を呼び出せます。</p>
+</div>
+<p>用例:</p>
+<div class="highlight-ring"><div class="highlight"><pre><span class="n">hello</span><span class="p">()</span>
+
+<span class="k">func</span> <span class="n">hello</span>
+        <span class="k">see</span> <span class="s">&quot;Hello from function&quot;</span> <span class="o">+</span> <span class="n">nl</span>
+</pre></div>
+</div>
+<p>用例:</p>
+<div class="highlight-ring"><div class="highlight"><pre><span class="n">first</span><span class="p">()</span>  <span class="n">second</span><span class="p">()</span>
+
+<span class="k">func</span> <span class="n">first</span>   <span class="k">see</span> <span class="s">&quot;message from the first function&quot;</span> <span class="o">+</span> <span class="n">nl</span>
+
+<span class="k">func</span> <span class="n">second</span>  <span class="k">see</span> <span class="s">&quot;message from the second function&quot;</span> <span class="o">+</span> <span class="n">nl</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="index-3">
+<span id="id4"></span><h2>仮引数の宣言<a class="headerlink" href="#index-3" title="このヘッドラインへのパーマリンク">¶</a></h2>
+<p>関数へ仮引数を宣言するには、関数名末尾に仮引数リストとしてカンマで区切った
+識別子のグループを記述します。</p>
+<p>用例:</p>
+<div class="highlight-ring"><div class="highlight"><pre><span class="k">func</span> <span class="n">sum</span> <span class="n">x</span><span class="p">,</span><span class="n">y</span>
+        <span class="k">see</span> <span class="n">x</span><span class="o">+</span><span class="n">y</span><span class="o">+</span><span class="n">nl</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="index-4">
+<span id="id5"></span><h2>仮引数の送信<a class="headerlink" href="#index-4" title="このヘッドラインへのパーマリンク">¶</a></h2>
+<p>関数へ仮引数を送信するには、関数名末尾に () の内側で仮引数を入力します。</p>
+<p>文法:</p>
+<div class="highlight-ring"><div class="highlight"><pre><span class="n">関数名</span><span class="p">(</span><span class="n">仮引数</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>用例:</p>
+<div class="highlight-ring"><div class="highlight"><pre><span class="o">/*</span> <span class="n">実行結果</span>
+<span class="o">**</span> <span class="mi">8</span>
+<span class="o">**</span> <span class="mi">3000</span>
+<span class="o">*/</span>
+
+<span class="n">sum</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span> <span class="n">sum</span><span class="p">(</span><span class="mi">1000</span><span class="p">,</span><span class="mi">2000</span><span class="p">)</span>
+
+<span class="k">func</span> <span class="n">sum</span> <span class="n">x</span><span class="p">,</span><span class="n">y</span> <span class="k">see</span> <span class="n">x</span><span class="o">+</span><span class="n">y</span><span class="o">+</span><span class="n">nl</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="main">
+<span id="index-5"></span><h2>Main 関数<a class="headerlink" href="#main" title="このヘッドラインへのパーマリンク">¶</a></h2>
+<p>Ring では、 Main (メイン) 関数はオプション扱いです。 Main 関数が定義された場合は、
+ほかのステートメント実行後にメイン関数が実行されます。</p>
+<p>ほかのステートメントが存在しない場合に限り、メイン関数は最初の <a class="reference external" href="https://ja.wikipedia.org/wiki/エントリーポイント">エントリーポイント</a> となります。</p>
+<p>用例:</p>
+<div class="highlight-ring"><div class="highlight"><pre><span class="c"># このプログラムは、 Hello World メッセージを表示した後にメイン関数を実行します。</span>
+
+<span class="k">See</span> <span class="s">&quot;Hello World!&quot;</span> <span class="o">+</span> <span class="n">nl</span>
+
+<span class="k">func</span> <span class="n">main</span>
+        <span class="k">see</span> <span class="s">&quot;Message from the main function&quot;</span> <span class="o">+</span> <span class="n">nl</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="index-6">
+<span id="id7"></span><h2>変数のスコープ<a class="headerlink" href="#index-6" title="このヘッドラインへのパーマリンク">¶</a></h2>
+<p>Ring は変数のスコープの決定で <a class="reference external" href="https://ja.wikipedia.org/wiki/静的スコープ">静的スコープ</a> を使用します。</p>
+<p>関数の内側で定義される変数は、ローカル変数になります (関数の仮引数も該当します)。
+関数の外側で定義される変数は、グローバル変数になります (関数の前にあるのは全て該当します)。</p>
+<p>この関数内で定義されたグローバル変数は、別の関数内にある変数としてもアクセスできます。</p>
+<p>用例:</p>
+<div class="highlight-ring"><div class="highlight"><pre><span class="c"># このプログラムでは 1 ~ 10 までの数値を表示します。</span>
+
+<span class="n">x</span> <span class="o">=</span> <span class="mi">10</span>                          <span class="c"># x はグローバル変数です。</span>
+
+<span class="k">func</span> <span class="n">main</span>
+
+        <span class="k">for</span> <span class="n">t</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">to</span> <span class="mi">10</span>         <span class="c"># t はローカル変数です。</span>
+                <span class="n">mycounter</span><span class="p">()</span>     <span class="c"># 関数の呼び出し</span>
+        <span class="k">next</span>
+
+<span class="k">func</span> <span class="n">mycounter</span>
+        <span class="k">see</span> <span class="n">x</span> <span class="o">+</span> <span class="n">nl</span>              <span class="c"># グローバル変数の値を表示します。</span>
+        <span class="n">x</span><span class="o">--</span>                     <span class="c"># 減分します。</span>
+</pre></div>
+</div>
+<div class="admonition note">
+<p class="first admonition-title">注釈</p>
+<p class="last">for ループの変数 t をローカル変数として宣言する前に、 Main 関数を使用してください。
+つまり、新しい変数のスコープをローカルとして設定するために、命令を直接入力するのではなく、
+Main 関数では自動的にローカルとして設定することが推奨されます。</p>
+</div>
+</div>
+<div class="section" id="index-7">
+<span id="id9"></span><h2>返値<a class="headerlink" href="#index-7" title="このヘッドラインへのパーマリンク">¶</a></h2>
+<p>Return 命令は、関数の値を返します。</p>
+<p>文法:</p>
+<div class="highlight-ring"><div class="highlight"><pre><span class="k">Return</span> <span class="o">[</span><span class="n">式</span><span class="o">]</span>
+</pre></div>
+</div>
+<div class="admonition tip">
+<p class="first admonition-title">ちなみに</p>
+<p class="last">Return 命令の後にある式はオプションであり、
+Return 命令で値を返さずに関数の実行を終了することもできます。</p>
+</div>
+<div class="admonition note">
+<p class="first admonition-title">注釈</p>
+<p class="last">関数が明示的な値を返さない場合は、 NULL (空の文字列 = &#8220;&#8221;) を返します。</p>
+</div>
+<p>用例:</p>
+<div class="highlight-ring"><div class="highlight"><pre><span class="k">if</span> <span class="n">novalue</span><span class="p">()</span> <span class="o">=</span> <span class="kp">NULL</span>
+        <span class="k">See</span> <span class="s">&quot;the function doesn&#39;t return a value&quot;</span> <span class="o">+</span> <span class="n">nl</span>
+<span class="k">ok</span>
+
+<span class="k">func</span> <span class="n">novalue</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="index-8">
+<span id="id10"></span><h2>再帰処理<a class="headerlink" href="#index-8" title="このヘッドラインへのパーマリンク">¶</a></h2>
+<p>Ring は <a class="reference external" href="https://ja.wikipedia.org/wiki/再帰">再帰</a>
+に対応しており、異なる引数を使用して関数が関数自身を再帰的に呼び出せます。</p>
+<p>用例:</p>
+<div class="highlight-ring"><div class="highlight"><pre><span class="k">see</span> <span class="n">fact</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>     <span class="c"># 実行結果 = 120</span>
+
+<span class="k">func</span> <span class="n">fact</span> <span class="n">x</span> <span class="k">if</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">0</span> <span class="k">return</span> <span class="mi">1</span> <span class="k">else</span> <span class="k">return</span> <span class="n">x</span> <span class="o">*</span> <span class="n">fact</span><span class="p">(</span><span class="n">x</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="k">ok</span>
+</pre></div>
+</div>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper"><h3>ページの内容</h3>
+<ul>
+<li><a class="reference internal" href="#">関数 - 第一形式</a><ul>
+<li><a class="reference internal" href="#index-1">関数の定義</a></li>
+<li><a class="reference internal" href="#index-2">関数の呼び出し</a></li>
+<li><a class="reference internal" href="#index-3">仮引数の宣言</a></li>
+<li><a class="reference internal" href="#index-4">仮引数の送信</a></li>
+<li><a class="reference internal" href="#main">Main 関数</a></li>
+<li><a class="reference internal" href="#index-6">変数のスコープ</a></li>
+<li><a class="reference internal" href="#index-7">返値</a></li>
+<li><a class="reference internal" href="#index-8">再帰処理</a></li>
+</ul>
+</li>
+</ul>
+
+
+  <h4>前のトピックへ</h4>
+  <p class="topless"><a href="getinput.html"
+                        title="前の章へ">標準入力の取得</a></p>
+  <h4>次のトピックへ</h4>
+  <p class="topless"><a href="functions2.html"
+                        title="次の章へ">関数 - 第二形式</a></p>
+  <div role="note" aria-label="source link">
+    <h3>このページ</h3>
+    <ul class="this-page-menu">
+      <li><a href="_sources/functions.txt"
+            rel="nofollow">ソースコードを表示</a></li>
+    </ul>
+   </div>
+      
+<form action="search.html" method="get">
+  <input type="text" name="q" placeholder="Search" />
+  <input type="hidden" name="check_keywords" value="yes" />
+  <input type="hidden" name="area" value="default" />
+</form>
+      
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+<footer class="footer">
+  <p class="pull-right">
+    <a href="_sources/functions.txt"
+       rel="nofollow">Page Source</a> &nbsp;
+    <a href="#">Back to Top</a></p>
+  <p>
+    &copy; Copyright 2016-2020, Ring Team.<br/>
+    Created using <a href="http://www.sphinx-doc.org/en/stable/">Sphinx</a> 1.3.6. / astropy-sphinx-theme 1.1 (isVowel)
+  </p>
+</footer>
+  </body>
+</html>
\ No newline at end of file