【激突】関数型言語 VS オブジェクト指向言語2
■ このスレッドは過去ログ倉庫に格納されています
0001営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 21:26:47.61一部には関数型言語を崇拝している人もいます
どちらが上なのか、この際はっきりさせましょう
前スレ http://toro.2ch.net/test/read.cgi/tech/1331328955/
0002営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 21:27:35.64http://toro.2ch.net/test/read.cgi/tech/1333801632/
0003営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 21:29:47.00> それならそれでFILTERでも変更できるインターフェースを付け加えればいいだけ。
そういう変更/拡張のし易さも議論の対象
ちゃんと変更したコードを提出しないと比較にならない
負け惜しみじゃないんだろ?
0004営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 21:35:39.48本来はフィルタでやることではないよ。
それわかってる?
0005営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 21:37:53.28class Filter {
private i = 0;
private m = 0;
begin(awk) {awk.RS=';'}
filter(line) {i++; m = max(m, line.length()); }
end() {print "最大文字数は"+m+"文字でした"}
}
こんな感じだろうw
0006営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 21:39:53.53いいから「改行コードを変更する拡張をする」に対して
OOPでやるとどれくらい簡潔になるか、コードを出せって
疑似コードじゃなくて動くヤツな
0007営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 21:41:05.68こんな感じかな。まあこの例ならsetuupでやればいいことだけど。
class Filter {
private i = 0;
private m = 0;
private awk;
setup(awk) {this.awk = awk}
begin() {awk.RS=':'}
filter(line) {i++; m = max(m, line.length()); }
end() {print "最大文字数は"+m+"文字でした"}
teardown() {this.awk = null}
}
0008営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 21:41:31.13肝心の部分はどうしたんですか?
どうやってセパレートしたんですか?
そうやって誤摩化すってことは、関数型言語で一瞬で書けるコードが
OOPでは難しいってことですね?
0009営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 21:42:07.17OOPでやると簡潔になるんじゃなくて、
変更の範囲を極小化出来るんだよ。
該当のフィルタだけの修正で、
それ以外の場所は何も変えないで変更できる。
■ このスレッドは過去ログ倉庫に格納されています