前回は、Apple公式のPlaygroundsブック「Learn to Code」の最初に出てくる「コマンド」は、「ファンクション」によって実現されているという話をしました。そして、自分でも簡単なファンクションを作ってみましたが、それはどこか変なファンクションであるという話もしました。今回は、そのどこが変だったのかを明らかにし、まともな普通のファンクションに作り直します。
前回作ったファンクションには、足りないものが2つありました。そのうちの1つは「引数」(ひきすう)と呼ばれるものです。前述のLearn to Codeにも引数は出てくるのですが、それは第2巻の4番目のチャプター「Parameters」です。根気よくそこまで進んだ人はまだ少ないかもしれません。
足りないもののもう1つは、「戻り値」(もどりち)と呼ばれるものです。これはファンクションとして基本的で重要なものなのに、Learn to Codeには最後まで出てきません。もし第3巻が発行されれば、そこに出てくるのかもしれません。それまで待てないので、今回取り上げることにしましょう。
引数と戻り値
プログラミングの経験がない人にとって引数というのは聞き慣れない言葉でしょう。昔から日本語にあった語ではないと思いますが、充てられた字の意味はなんとなくわかります。この場合の「引」は、引っぱるということではなく「配る」「与える」といった意味です。「引き出物」の「引」と言えばわかりやすいでしょう。つまり引数は、ファンクションに与える数のことです。
一方の戻り値は、読んでそのままの意味で、ファンクションが戻す値です。引数に比べるとベタな名前ですが、英語の「return value」の訳なのです。「返り値」と呼ぶ場合も稀にありますが、戻り値のほうがずっと一般的です。返り値は「返り血」を連想させて物騒だからかもしれません。
ところでファンクションのことは日本語では「関数」(かんすう)と呼ぶことも多いのです。関数と言えば、学校の数学で習ったsin(サイン)やcos(コサイン)など、三角関数を思い出す人も多いでしょう。y=sin(x)とか、y=cos(x)とかいうアレです。関数は、もちろん三角関数に限りません。一般的な関数を⨍で表すとy = ⨍(x)のようになります。
この簡単な式でもわかるように、関数と言えば、何かそこに入ってくるものと、そこから出ていくものがあります。そして入ってくるものと出ていくものの関係を表すのが、その関数なのです。上の一般的な関数の形を図式的に書くと、x → ⨍ →yのようになるでしょう。
プログラミングの関数=ファンクションも基本的にそれと同じです。ファンクションは引数を受け取って、それに対してなんらかの処理を加え、その結果を戻り値として返すのが普通なのです。
この連載の記事
- 第100回 SceneKitの物理現象シミュレーションとアニメーションをARKitに持ち込む
- 第99回 「物理学体」と「物理学場」を設定して物理現象をシミュレーション
- 第98回 SceneKitのノードに動きを加えるプログラム
- 第97回 いろいろな形のノードをシーンの中に配置する
- 第96回 SceneKitの基礎シーンビュー、シーン、ノードを理解する
- 第95回 現実世界の床にボールや自動車のモデルを配置する
- 第94回 ARKitを使って非現実世界との融合に備える
- 第93回 ARKitが使えるiPadを識別するプログラム
- 第92回 Swift Playgrounds 2.1での問題点をまとめて解消する
- 第91回 iPadの内蔵カメラで撮影した写真を認識するプログラム
- この連載の一覧へ