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

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

[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の覚書1

Swift 先日、Appleから新言語Swiftが発表されました。 今までiOSアプ

記事を読む

[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

記事を読む

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アプリの開発もしております。

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
PAGE TOP ↑

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