質問するログイン新規登録

回答編集履歴

1

誤字の修正

2016/07/02 22:51

投稿

raccy
raccy

スコア21807

answer CHANGED
@@ -34,7 +34,7 @@
34
34
  ####immutableなメソッドチェーン
35
35
  * ストリーム(リスト)オブジェクト … 関数型で見られるような処理ができるパターンです。ストリーム(リスト)を抽出、射影、並び替えなどを次々行います。JavaのStream、C#のLINQ、RubyのEnumerable等。
36
36
  * 今のJava … 最近のJavaに追加されたクラスはimmutableな場合が多い傾向にあります。パフォーマンスもよくなったため、速度よりも安全を取るという選択です。
37
- * Ruby … Rubyのオブジェクト自体はmutableなものが多いですが、ほとんどの場合で、新たに生成したオブジェクトを返すメソッドが用意されています。それらとは違い、副作用を伴うメソッドは**破壊的メソッド**とよんでなるべく区別できるようにしています。**それら破壊的メソッドはnilを返す事もあるようにして、わざとメソッドチェーンをしにくくしています。**自然と破壊的メソッドではないmutableなメソッドチェーンを使うように洗脳する恐ろしい言語です。
37
+ * Ruby … Rubyのオブジェクト自体はmutableなものが多いですが、ほとんどの場合で、新たに生成したオブジェクトを返すメソッドが用意されています。それらとは違い、副作用を伴うメソッドは**破壊的メソッド**とよんでなるべく区別できるようにしています。**それら破壊的メソッドはnilを返す事もあるようにして、わざとメソッドチェーンをしにくくしています。**自然と破壊的メソッドではない**im**mutableなメソッドチェーンを使うように洗脳する恐ろしい言語です。
38
38
 
39
39
  ###まとめ
40
40
  昔はマシンも貧弱であり、パフォーマンスが重視されていたため、mutableな傾向が強かったと思います。しかし、近年は、マシン速度が向上し、関数型プログラミングの流行に伴い、immutableな実装が主流ではないかと思います。速度と安全は二律背反であり、どちらがか正解という物ではありません。用途や目的などに合わせて選ぶと良いかと思います。