数学でおなじみの関数(ファンクション)をプログラミングではどうなる?

プログラミングにそもそも興味のある人は多少の数学はできなければなりません。
と言っても中学生レベルである程度理解できるのでご心配は要りません。

中学生レベルの数学が大人になった今、ちょっと不安というのであれば、関数のところだけでも良いので少し復習しましょう。関数の概念は最低限、プログラミングには必要です。

そもそも関数とは要はインプットとアウトプットが一定の法則に従い異なった形で出てくるというものです。
身近なものではお買い物です。

八百屋で100円のリンゴを買ったら、消費税8%がかかり、108円払うことになりました。これも、ある意味関数に近いイメージです。

100円のお金というインプットで、消費税8%の法則に従い、108円のお支払いがアウトプットとして求められる仕組みがそこにあるからです。

数学でおなじみの関数はf(x)などと表記されます。

f(x) = x × 1.08

上記の例に照らし合わせると、xがインプット(お金)、x × 1.08が法則(消費税)、f(x)=108がアウトプット(お支払い)となります。

数学のこの表記のようにiPhoneを動かすSwiftの関数はf( )のようなカッコ( )付きの表記が一般です。

何か突然( )が描かれているソースコードを見つけたらここが関数だなぁと想像できれば十分です。

この場合、xは引数とも呼ばれ、プログラミングの動きを確認したい場合はxの箇所に様々な数字を入れたりしてみるのも、より理解を助けてくれることとなるでしょう。

ただ、実際、iPhoneのアプリを作成する場合は実はこの引数を持たない関数を使う場面の方が圧倒的に多いです。

数学的な書き方をすれば以下のようになります。

f( ) = 108

こんなんがiPhoneアプリを動かすのに使えるのかと思われてしまうかもしれませんが、結構使えます。

呼ぶたびに108円と声を上げるような仕組みです。

具体的には以下のようなコードです。

func f( ) {
return print("108 yen")
}

これはアプリを起動させる時に起動する関数(viewDidLoad( ) { f( ) } )の中に入れてあげると、起動時に「108 yen」とデバッグエリアに雄叫びをあげてくれます。

ちなみに、以下のように2回、その関数を書いてあげると雄叫びも2回してくれます。
viewDidload( ) { f( ); f( ) }

iPhoneアプリを作る上では、いつその関数を呼ぶのかが重要です。ユーザーが何かをタップした時などに呼ばせたいなど条件指定もすることもできるのでタイミングを調節するために関数はよく使われております。

もちろん、最初の例のように引数も含めたコードにするのであれば以下のようになります。
これを理解するのはちょっと難しいかもしれませんね。

func fx(x:Float) -> Float {
return x*1.08
}

これをどうしても理解したい人は以下をヒントにGoogle先生に聞いてみてください。

- Swiftの型とは? なぜFloatではないといけないのか?
- 矢印Arrowの->とreturnの関係は何か?

ちなみに私のアプリは引数のない雄叫び応答型の関数が9割を占めております!

この記事へのコメント