[Swift] 関数型プログラミング

公開日: : 最終更新日:2015/12/25 javascript, Swift

関数型プログラミングについて、ストーリー仕立ての面白い記事がありましたので紹介します。

IQ145で美少女JKな先輩に「関数型プログラミング」を特訓してもらえた僕の5日間の記録

Swiftでも同じように関数型を宣言しておくことができます。

reduce → 配列内を合算

reduceは配列内の合計値が取得できます。

記事にあったJavaScript。

var plus = function(a, b)
{
  return a + b;
};

var s = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].reduce(plus);

console.log(s);

 

Swiftで書くとこうなります。

var plus = {
    (a : Int, b : Int) -> Int in a + b
}

var s = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].reduce(0, plus)

println(s) // 45が出力

 

ちなみに

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

の配列の宣言を

[0...9]

にして省略しちゃうと、何故かエラーになります。ご注意を。

reduceのほかに、filterやmapでも同様のことが可能です。

filter → 配列をフィルタリング

filterは配列のフィルタリングです。

1〜9の配列内の値を偶数でフィルタリングして抜き出します。

var filterEven = {
    (a : Int) -> Bool in a % 2 == 0
}

var filterResult = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].filter(filterEven)

println(filterResult) // [0, 2, 4, 6, 8』が出力

map → 配列内の変更

mapは配列内の値の変更します。

1〜9の配列内の値を2倍します。

var mapMultiply = {
    (a : Int) -> Int in a * 2
}

var mapResult = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map(mapMultiply)

println(mapResult) // [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]が出力

 

詳しくはApple公式のリファレンスを参照してください。
Swift Standard Library Reference : Array<T>

ad

関連記事

[Swift] UITabBarControllerでタブ選択時のイベントを取得する

UITabBarController タブを使った画面を作成する場合はUITabBarContro

記事を読む

[Swift] スクリーンサイズを取得する

スクリーンサイズを取得 iPhoneの幅と高さを取得する関数を紹介します。 iOS8から画面の傾

記事を読む

[Swift] UITableViewのセルにアクションを設定する

セル選択→アクション UITableViewControllerを使用したテーブルビューの画面があ

記事を読む

[Swift] CoreDataのテーブルからデータ件数を取得する

件数を取得する fetchResultsControllerなどを使わず、直接テーブルのデータ件数

記事を読む

[Swift] Asset Catalogについて

XCode5から追加されたAsset Catalog。 いままで標準のImages.xcasset

記事を読む

[Swift] Swiftでいろんなfor文まとめてみた

いろんなfor文 プログラム作成で必ず出てくるfor文を自分なりにまとめてみました。 Swift

記事を読む

[Swift] 画像を合成する

画像を合成 以下の2つの画像を合成してみます。円と四角です。 画像をプロジェクトに追

記事を読む

[Swift] 定数クラスをつくってみる

Objective-cの場合 今回は共通にする定数をまとめるクラスを作ってみます。 まずはO

記事を読む

[Swift] frameworkについて

先日、Swiftで実装されたライブラリをまとめたサイトを発見しました。 Swift Toolb

記事を読む

[Swift] UINavigationControllerで戻るイベントを取得する

UINavigationController UINavigationControllerを使用し

記事を読む

ad

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ad

[PHP] curl転送してみる(googleに)

curlでgoogle画像検索APIにアクセスしてみます。 cu

[PHP] PDOでMySQLの接続確認をする

PDO PHPでMySQLに接続する際には、mysql_connec

[PHP] ランダムな英数字を生成する

便利系メソッド 今回はPHPでランダムな英数字を作成してみます。

[Swift] プロパティリスト(plist)の値を取得

plistからデータを取得してみます。 こちらのエントリーも参考にし

[Swift] Asset Catalogについて

XCode5から追加されたAsset Catalog。 いままで標準

→もっと見る

  • 1978年の七夕生まれ。 25才でweb業界の門を叩き、28才でフリーランスに。 現在は、フリーランスでマークアップ中心に、wordpressのカスタマイズやデザインをしております。 また、iPhoneアプリの開発もしております。
PAGE TOP ↑