ユーザ用ツール

サイト用ツール


tutorial:nim:procedures

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
tutorial:nim:procedures [2024/07/12 03:02] freemikantutorial:nim:procedures [2024/08/19 19:19] (現在) freemikan
行 12: 行 12:
 ''proc''は値を返すことが出来るので、まるで関数のようです。Nimには''func''というキーワードもあります。これは関数型プログラミングの純粋関数により近いものです。また、''method''というキーワードもあります。現段階では''func''と''method''は忘れていおいて''proc''に注力します ''proc''は値を返すことが出来るので、まるで関数のようです。Nimには''func''というキーワードもあります。これは関数型プログラミングの純粋関数により近いものです。また、''method''というキーワードもあります。現段階では''func''と''method''は忘れていおいて''proc''に注力します
  
-====== 戻り値 ======+===== 戻り値 =====
  
 先のaddの例では、最後の式である''a + b''が戻り値になりました。プロシージャの戻り値がどのように決定されるかは、次のルールに従います。 先のaddの例では、最後の式である''a + b''が戻り値になりました。プロシージャの戻り値がどのように決定されるかは、次のルールに従います。
行 47: 行 47:
 このプロシージャを''add(1, 2)''と呼び出した場合、いずれも最初の例と同じである''3''が戻り値になります。 このプロシージャを''add(1, 2)''と呼び出した場合、いずれも最初の例と同じである''3''が戻り値になります。
  
-====== パラメーター ======+===== パラメーター =====
  
 パラメーター(parameters)とはプロシージャの引数を指します。プロシージャの呼び出し時に渡される値はアーギュメント(arguments)と読んで区別することが出来ます。Nimに限ったことではなくプログラミング一般において、必要なときにのみparametersとargumentsを使い分けることが多いです((日本語の古い資料だと仮引数と実引数に分けているものもあります。個人的な意見を言うと、どっちが「仮」でどっちか「実」か覚えておかなければならず、脳みそに無駄な負担かけるので、この名称は好ましくないと思っています。))。どちらを指しているかは文脈から明らかなことが多いので、最近は単に引数とだけ呼ばれるのが普通です。 パラメーター(parameters)とはプロシージャの引数を指します。プロシージャの呼び出し時に渡される値はアーギュメント(arguments)と読んで区別することが出来ます。Nimに限ったことではなくプログラミング一般において、必要なときにのみparametersとargumentsを使い分けることが多いです((日本語の古い資料だと仮引数と実引数に分けているものもあります。個人的な意見を言うと、どっちが「仮」でどっちか「実」か覚えておかなければならず、脳みそに無駄な負担かけるので、この名称は好ましくないと思っています。))。どちらを指しているかは文脈から明らかなことが多いので、最近は単に引数とだけ呼ばれるのが普通です。
行 78: 行 78:
 プロシージャ内での変更が呼び出し元にまで影響を与えている、すなわち、参照渡しとなっていることに注意してください。 プロシージャ内での変更が呼び出し元にまで影響を与えている、すなわち、参照渡しとなっていることに注意してください。
  
-====== 戻り値を無視する ======+===== 戻り値を無視する =====
  
 Nimでは、値を返すプロシージャの呼び出しで、その戻り値を無視することは出来ません。 Nimでは、値を返すプロシージャの呼び出しで、その戻り値を無視することは出来ません。
行 101: 行 101:
 これはコンパイルエラーになりません。 これはコンパイルエラーになりません。
  
-====== その他のプロシージャの特徴 ======+===== その他のプロシージャの特徴 =====
  
 プロシージャには便利に使えるようにするために、いくつか便利で重要な特徴があります。 プロシージャには便利に使えるようにするために、いくつか便利で重要な特徴があります。
  
-===== 名前付き引数 =====+==== 名前付き引数 ====
  
 通常のプロシージャ呼び出しは、引数は左から順番に渡されます。名前付き引数を使うことで、プロシージャ定義の引数の順序に依存せず引数を渡すことが出来ます。 通常のプロシージャ呼び出しは、引数は左から順番に渡されます。名前付き引数を使うことで、プロシージャ定義の引数の順序に依存せず引数を渡すことが出来ます。
  
-===== デフォルト値 =====+==== デフォルト値 ====
  
 プロシージャの定義で、パラメーターにデフォルト値を設定することが出来ます。 プロシージャの定義で、パラメーターにデフォルト値を設定することが出来ます。
  
-===== オーバーロード =====+==== オーバーロード ====
  
 パラメーターが異なる、同じ名前のプロシージャを複数定義することが出来ます。 パラメーターが異なる、同じ名前のプロシージャを複数定義することが出来ます。
  
-===== 演算子のオーバーロード =====+==== 演算子のオーバーロード ====
  
 ''+''や''==''となどの演算子にプロシージャを定義することで、その演算子を使った式でプロシージャが呼び出されるように出来ます。 ''+''や''==''となどの演算子にプロシージャを定義することで、その演算子を使った式でプロシージャが呼び出されるように出来ます。
  
-===== 前方宣言 =====+==== 前方宣言 ====
  
 プロシージャは、使用されるところでそのプロシージャが見えていなければなりません。プロシージャの本体が見えている必要はなく、そのシグネチャさえ見えていれば良いです。プロシージャを定義せずに宣言だけ行う方法があります。 プロシージャは、使用されるところでそのプロシージャが見えていなければなりません。プロシージャの本体が見えている必要はなく、そのシグネチャさえ見えていれば良いです。プロシージャを定義せずに宣言だけ行う方法があります。
tutorial/nim/procedures.1720720969.txt.gz · 最終更新: 2024/07/12 03:02 by freemikan

特に明示されていない限り、本Wikiの内容は次のライセンスに従います: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki