読者です 読者をやめる 読者になる 読者になる

Swift,Objective-Cプログラミング ~ iOS ~

Objective-C,Swift,Apple Watchなどのプログラミング

【iOS Swift入門 #232】関数型プログラミングとジェネリクスで配列内の重複排除

Swiftの配列関数では、mapやfilter, reduceなど、 配列を操作する関数が用意されている。配列の重複を排除する関数は用意されていないので、作成する。 func distinct<T: Equatable>(source: [T]) -> [T] { var unique = [T]() for item in source { if !contains(unique, </t:>…

【iOS Swift入門 #226】自作のクラスをSequenceTypeを適用して、for in 構文に対応させる

for in構文は配列の繰り返し処理に使う。 このfor in構文を自作のクラスでも使えるようにするには?SequenceTypeプロトコルを自作のクラスに適用する必要がある。■SequenceTypeプロトコルの定義 protocol SequenceType : _Sequence_Type { typealias Generat…

【iOS Swift入門 #220】関数プログラミング その5(Partial Function 部分関数・部分適用)

関数プログラミングではPartial Function(部分関数・部分適用)という用語があるようだ。いろいろ調べてみたがよくわかっていないが、 一応下記の通りかと納得させている。あるひとつまたは複数の引数を指定できるメソッドや関数から、指定できる引数を減らし…

【iOS Swift入門 #219】関数プログラミング その4(複雑な処理を簡略化)

for文、if文がいくつもあり複雑な処理を関数型プログラミングで簡略化する。■配列内の文字列を先頭の1文字が同じものどうしでグループ化する・関数プログラミングを使わない場合 // 単語リスト let words = ["Cola", "Coffee", "orange juice", "Cider", "Po…

【iOS Swift入門 #218】関数プログラミング その3(配列のmap)

map関数は配列を処理・変換し、別の配列を作成する場合に使用する。■文字列の配列を処理し、別の文字列の配列を作成する ・関数プログラミングを使わない場合 // プログラミング言語の名前配列 let languages = ["Swift", "Objective-C", "Ruby", "PHP", "JA…

【iOS Swift入門 #217】関数プログラミング その2(配列のreduce)

reduce関数はそれぞれの配列の要素を計算し、 ひとつの結果を得るために使用する。■1から10の数値の奇数の合計値を計算する ・関数プログラミングを使わない場合 // 1から10の数値にある奇数を抽出 var odds = [Int]() for i in 1...10{ if i % 2 == 1{ odds…

【iOS Swift入門 #216】関数プログラミング その1(配列のfilter)

特定の条件を満たす配列の要素だけを別の配列として抽出する。 filter関数を利用する。■1から10の数値から奇数の数値を抽出する ・関数プログラミングを使わない var odds = [Int]() for i in 1...10{ // 2で割ったあまりが1なら奇数ですね。 if i % 2 == 1{…