No.2ベストアンサー
- 回答日時:
#1 ですが、あなたの補足について言わせてください。
>他の言語の流儀だけを不利な前提で貶めて、それを関数型言語の利点たらしめるという理屈を私は認めることができません。
私自身はそのようなつもりで回答したのではありません。
私は、「よく『副作用がない』ということが関数型プログラミングのメリットとして挙げられ」ることに対して、なぜそれがメリットとされるかという点を答えたつもりでした。
ただ、それが相対的にほかのパラダイムのプログラミング手法を貶めるような書き方になってしまったことは少々反省しております。
また、私は副作用がないことは関数型プログラミングの「メリット」ではなくメリットもデメリットもある「特徴」と考えております。
> というか、大抵のプログラミング言語では、柔軟性を持たせるという意味で非推奨な処理の記述を許しているのが一般的なのではないでしょうか。
> そして、非推奨な記述がなされることを前提にすれば、どんな言語でもメチャクチャになるのは至極当然です。
こちらは全くその通りだと考えます。
ただし、ある記述が禁止されているか非推奨か何でもないかは言語によって変わっております。
それゆえ、ある言語でコーディングするからにはその言語のパラダイムにあったコーディングをすべきであると私は考えます。
今回の場合は、関数型言語では副作用がない以上それを受け入れるべきであり、手続き型言語では副作用がありうる以上それを意識したコーディングをすべきでしょう。
関数型言語は特徴的であるというだけで、他と比べて明確なメリットがあるわけではなさそうですね。
まあ、場合によっては強力ということになるのは確かですが。
一部で異様に人気のある言語ですが、私はそこまで魅力を感じません。
関数型言語を盲目的にべた褒めする連中はカルトでしょう。
No.1
- 回答日時:
あなたの質問にその答が隠れています。
> 手続き型プログラミングにおいても、副作用をもたらすモジュール設計は推奨されない
の「推奨されない」の一文が問題で、副作用がないように設計・コーディングすると決めたとしてもそれを簡単に破ることができます。これは意図的なものとも限らず、またチームで開発し互いにソースレビューを行うとしてもレビューでの見逃しは起こりえます。
したがって、言語仕様として
> 「副作用がない」ということ
を保障/強制されることが
> 関数型プログラミングのメリット
の一つとなります。
この回答への補足
手続き型言語で一般に推奨されないコーディングをなされることがあるのは確かです。
しかし、それは関数型言語でも同様でしょう。
というか、大抵のプログラミング言語では、柔軟性を持たせるという意味で非推奨な処理の記述を許しているのが一般的なのではないでしょうか。
そして、非推奨な記述がなされることを前提にすれば、どんな言語でもメチャクチャになるのは至極当然です。
他の言語の流儀だけを不利な前提で貶めて、それを関数型言語の利点たらしめるという理屈を私は認めることができません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
パスカルケースの由来。
-
vbaとc言語の関連性について
-
VBSとWSHは読み方が違うだけで...
-
UNITY Float型の接尾辞fって
-
Transitional/ENとは
-
C++における継続行
-
新しいプログラムには、何故COB...
-
COBOLでのNOT = の AND条件
-
プログラム言語について c言語...
-
ホームページを作成する際に良...
-
C言語の使い道
-
VRMLってなんですか??
-
クオンツに必要なプログラミン...
-
昔、MZ-2000やX1でBASICを書い...
-
プログラミング言語について
-
緑色の箱の「Visual Studio 200...
-
Javaの勉強をしているんですがJ...
-
ゲームってC++でしか作れないの...
-
何をすればいいのかわかりません!
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
今ってプログラミング言語は何...
-
C言語、C+、C++、C#の違い
-
プログラミング言語について
-
COBOLでのNOT = の AND条件
-
近年誕生したプログラミング言語
-
UNITY Float型の接尾辞fって
-
C言語とhtmlの違いを どな...
-
vbaとc言語の関連性について
-
C++における継続行
-
プログラムに書かれる"%"記号の...
-
COBOLで文字タイプを数字...
-
VBSでDim、Private、Publicの違い
-
TO_CHARで小数点以下がある場合...
-
VBSとWSHは読み方が違うだけで...
-
Excel VBAで文字化けする (英語...
-
VCとVC++
-
HTMLとC++で、どんなホームペー...
-
C++ ってなんて読む?
-
UWSCはどのプログラミング言語?
-
会計システムをつくるために必...
おすすめ情報