[Swift] 関数型プログラミング
公開日:
:
最終更新日:2015/12/25
javascript, Swift
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/users/1/juny/web/hidef/wp-content/plugins/ultimate-google-analytics/ultimate_ga.php on line 524
関数型プログラミングについて、ストーリー仕立ての面白い記事がありましたので紹介します。
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] ビルド時のエラー&iOS8でNSBigDecimalのバグ
ビルド時のエラー Swiftプロジェクトを実行中に以下のエラーが出ました。 "__TFSs15_
-
[Swift] CoreDataのテーブルからデータ件数を取得する
件数を取得する fetchResultsControllerなどを使わず、直接テーブルのデータ件数
-
[Swift] optional値の設定(??)
optional値がnilの時 プロジェクトでのテンプレートを選択した時にソースコードが自動生成さ
-
[Swift] 定数クラスをつくってみる
Objective-cの場合 今回は共通にする定数をまとめるクラスを作ってみます。 まずはO
-
[javascript] Google Maps javaScript API v3の使い方(応用編:Mapの色を変更する)
まだまだあるぞ!Google Maps javaScript API v3 さて、2回にわたって紹
-
[Swift] Asset Catalogについて
XCode5から追加されたAsset Catalog。 いままで標準のImages.xcasset
-
[Swift] スクリーンサイズを取得する
スクリーンサイズを取得 iPhoneの幅と高さを取得する関数を紹介します。 iOS8から画面の傾
-
[Swift] CoreDataで検索したデータを削除する
CoreDataの検索と削除 前の投稿 CoreDataを使ってみる をふまえて今度は検索&削除
-
[Swift] frameworkについて
先日、Swiftで実装されたライブラリをまとめたサイトを発見しました。 Swift Toolb