質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
関数型プログラミング

関数型プログラミングとは、関数を用いて演算子を構築し、算出し、コンピュータプログラムを構成する枠組みです。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

3回答

3765閲覧

Swiftと関数型プログラミングっぽい事は何となく分かる気がするけど実際の実装ではどう使えばいいんでしょうか

yoneapp

総合スコア85

関数型プログラミング

関数型プログラミングとは、関数を用いて演算子を構築し、算出し、コンピュータプログラムを構成する枠組みです。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

1クリップ

投稿2015/06/19 15:12

編集2015/06/20 02:53

Swiftには関数型プログラミングの性質があるようで、そういった言語がiPhoneアプリ開発に取り入れられた事には何らかの意味があると思うので、積極的に使ってみたいと思っています。

他言語ですが、関数プログラミング実践入門という本を読んだり、すごいHaskellたのしく学ぼう!を読んでみたりして、関数が合成できる事やモナドっぽい事は何となく分かるようになったのですが、実際のアプリでどのように使えばいいかに悩んでいます。

実際に関数型っぽい事が、ネットからJSONを取ってきて、JSONパースしてTableViewに表示するようなフローなどで、どう使われているか知りたいと思っています。

例えば、既存のMVC的な事は捨てるのか、それともモデルの中で関数型っぽい事をするのかなど実際にどう使うかについて悩んでいます。

実際にSwiftの関数型プログラミングを使ったようなプログラミングコードが無いか探してみようと思ったのですが上手く検索クエリが思いつかず普通のSwiftコードばかりを見つけてしまいます。

Swiftの関数型プログラミングを実際にアプリに使う際に、どのように使っていけばいいか、どのように実装すればいいかを学ぶ良い方法はありませんか。どうか、ご教授いただけませんでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

自己解決

Swiftに純粋な関数型ではないというご指摘ありがとうございます。ともかく、Swiftを活用するために関数型っぽい事を取り入れていく必要があるのかなという質問でした。

最近の記事ですと、以下の様な内容が近かったかと思います。

Swiftっぽく書くということ
http://sonson.jp/blog/2015/06/30/swiftSymposium/

ご回答有難うございました。

投稿2015/07/21 03:10

編集2015/07/22 00:45
yoneapp

総合スコア85

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Swiftには関数型プログラミングの性質があるようで...

Swiftにある「関数型プログラミングの性質(?)」は、具体的に言うと「クロージャ」だけです。
ちなみに、クロージャはC言語でも使えます。
だから、Swiftで関数型っぽいことをしたいなら、クロージャの使い方を勉強してください。

あと、Swiftは関数型言語ではないので、関数型プログラミングはできません。
おそらくあなたは、「関数プログラミング実践入門」や「すごいHaskellたのしく学ぼう!」を読んだけど、そこに書かれていることがSwiftで出来なかったから今回の質問をしたんじゃないんですか?
それは、単純にSwiftでは関数型プログラミングが出来ないということなのです。

投稿2015/06/20 03:46

Stripe

総合スコア2183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoneapp

2015/06/20 04:02

ご回答ありがとうございます!
guest

0

ソフトウエアの開発は、おおむね以下のような手順で行います。

[要件定義] -> [設計] -> [実装] -> [テスト] -> [導入]

そして、この中の[実装]のところで、プログラミングを行います。
つまり、[設計]段階ではプログラミングしないので、「関数型プログラミングを設計でどう使えばいいのか?」と言われても、「そもそも使いません。」という回答になります。

ちなみに、Swiftには「クロージャ」「カリー化」などがありますが、基本的に関数型言語ではありませんので、関数型プログラミングはできません。
少なくとも現在のバージョンでは。

投稿2015/06/20 02:41

Stripe

総合スコア2183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoneapp

2015/06/20 02:52

設計ではなくて実装ですね、ご指摘ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問