No.2ベストアンサー
- 回答日時:
#1 ですが、あなたの補足について言わせてください。
>他の言語の流儀だけを不利な前提で貶めて、それを関数型言語の利点たらしめるという理屈を私は認めることができません。
私自身はそのようなつもりで回答したのではありません。
私は、「よく『副作用がない』ということが関数型プログラミングのメリットとして挙げられ」ることに対して、なぜそれがメリットとされるかという点を答えたつもりでした。
ただ、それが相対的にほかのパラダイムのプログラミング手法を貶めるような書き方になってしまったことは少々反省しております。
また、私は副作用がないことは関数型プログラミングの「メリット」ではなくメリットもデメリットもある「特徴」と考えております。
> というか、大抵のプログラミング言語では、柔軟性を持たせるという意味で非推奨な処理の記述を許しているのが一般的なのではないでしょうか。
> そして、非推奨な記述がなされることを前提にすれば、どんな言語でもメチャクチャになるのは至極当然です。
こちらは全くその通りだと考えます。
ただし、ある記述が禁止されているか非推奨か何でもないかは言語によって変わっております。
それゆえ、ある言語でコーディングするからにはその言語のパラダイムにあったコーディングをすべきであると私は考えます。
今回の場合は、関数型言語では副作用がない以上それを受け入れるべきであり、手続き型言語では副作用がありうる以上それを意識したコーディングをすべきでしょう。
関数型言語は特徴的であるというだけで、他と比べて明確なメリットがあるわけではなさそうですね。
まあ、場合によっては強力ということになるのは確かですが。
一部で異様に人気のある言語ですが、私はそこまで魅力を感じません。
関数型言語を盲目的にべた褒めする連中はカルトでしょう。
No.1
- 回答日時:
あなたの質問にその答が隠れています。
> 手続き型プログラミングにおいても、副作用をもたらすモジュール設計は推奨されない
の「推奨されない」の一文が問題で、副作用がないように設計・コーディングすると決めたとしてもそれを簡単に破ることができます。これは意図的なものとも限らず、またチームで開発し互いにソースレビューを行うとしてもレビューでの見逃しは起こりえます。
したがって、言語仕様として
> 「副作用がない」ということ
を保障/強制されることが
> 関数型プログラミングのメリット
の一つとなります。
この回答への補足
手続き型言語で一般に推奨されないコーディングをなされることがあるのは確かです。
しかし、それは関数型言語でも同様でしょう。
というか、大抵のプログラミング言語では、柔軟性を持たせるという意味で非推奨な処理の記述を許しているのが一般的なのではないでしょうか。
そして、非推奨な記述がなされることを前提にすれば、どんな言語でもメチャクチャになるのは至極当然です。
他の言語の流儀だけを不利な前提で貶めて、それを関数型言語の利点たらしめるという理屈を私は認めることができません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 皮膚の病気・アレルギー 今後、コロナワクチン接種を、希望してる方へ アストラゼネカ ファイザー、モデルナ 新型コロナワクチン 1 2022/07/24 04:56
- HTML・CSS HTMLの・要素・属性・属性値 はプログラム言語の「変数」みたいに変更できますか? 5 2022/10/04 05:27
- 政治 緊急事態条項が憲法改正で追加されるといくらでも人権無視政策が可能になります。危険すぎると思いませんか 2 2022/05/20 20:33
- 政治 新型コロナウイルスワクチン(遺伝子ワクチン)の副作用で失明したらどうしますか?副作用で失明する人が多 3 2022/04/10 20:08
- 法学 コンピューター プログラミングの言語で記述されたプログラミングのコード一式は、作った人に 著作権があ 4 2023/08/04 17:31
- IT・エンジニアリング 21歳の大学3年男です。 現在プログラミングを習得できるところに入ろうか悩んでます。 そのスクールは 3 2022/06/21 00:43
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- その他(プログラミング・Web制作) プログラミングって本来数学的な計算をする為のものではないのですか? 学校で配られたFortran90 11 2022/08/25 22:14
- その他(プログラミング・Web制作) Pythonでこのプログラミングを作りたいのですが 1 2022/10/24 18:56
- PHP ログイン機の付きの掲示板サイトを作りたいです。 2 2022/10/09 04:33
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラム言語について c言語...
-
プログラムに書かれる"%"記号の...
-
VBSとWSHは読み方が違うだけで...
-
C言語とhtmlの違いを どな...
-
どのプログラミング言語を学ぶ...
-
UNITY Float型の接尾辞fって
-
C#とC++のざっくりとした違いを...
-
AIって何のソフトで作っている...
-
VBSでDim、Private、Publicの違い
-
Excel VBAで文字化けする (英語...
-
ダンジョンゲームプログラミン...
-
C言語の入門書
-
計算速度の速いC言語を教えてく...
-
メッセージの頭に「#」の意味教...
-
"グラフィック言語"とは何ですか?
-
関数型プログラミングの利点は...
-
Pythonって何を意識した言語な...
-
IBM PS/55時代のDOS/V用BASICイ...
-
C++における継続行
-
HTMLとC++で、どんなホームペー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
プログラム言語について c言語...
-
プログラムに書かれる"%"記号の...
-
C言語とhtmlの違いを どな...
-
vbaとc言語の関連性について
-
AIって何のソフトで作っている...
-
UNITY Float型の接尾辞fって
-
COBOLでのNOT = の AND条件
-
TO_CHARで小数点以下がある場合...
-
COBOLで文字タイプを数字...
-
プログラム言語について プログ...
-
C++における継続行
-
swift言語の最適化 swift最適化...
-
VBSとWSHは読み方が違うだけで...
-
C++ ってなんて読む?
-
web2.0以前のインターネットで...
-
Excel VBAで文字化けする (英語...
-
VBSでDim、Private、Publicの違い
-
HTMLとC++で、どんなホームペー...
-
Pythonって何を意識した言語な...
おすすめ情報