オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
https://twitter.com/ProgrammingMono/status/665702678006140928
研究グループは、血管新生注において血管が伸長する際の血管内皮細胞注運動を制御するしくみを、生物学と数理モデル・
コンピュータシミュレーションを融合させた先端的な研究手法により明らかにしました。
生物は、最小の機能単位である細胞が寄り集まった多細胞体です。しかし、細胞の集まりが、組織や器官といった
秩序ある形態や構造をつくり機能するしくみはほとんど分かっていません。中でも血管は、体中の全組織に十分な
酸素や栄養源を効率よく供給するため、組織や組織の間に入り込み、血管外の環境との相互作用により、巧妙な
枝分かれ構造をとっています。
これまでに本研究グループは、新しく血管がつくられる(血管新生)際の細胞の動きに着目し、特に血管内皮細胞の
動きをリアルタイムで可視化し、定量的に捉えることを可能にしてきました。
今回さらに、血管の伸長を制御するしくみについて、細胞が自発的に自らを制御して動く過程(自律的過程)と、
隣接した細胞から適宜影響を受けて動く過程(協調的過程)がうまく共存することで、全体の動きが巧みに統制
されていることを世界に先駆けて実証しました。
興味深いことに、血管内皮細胞が前後したり、お互いに追い抜きあったりという血管新生で見られる複雑な細胞集団の
動きを制御している中枢部分は、細胞一つ一つの動き(スピードと方向性)の「確率的な変化」として十分説明できる
ことをコンピュータシミュレーションで実証しました。
http://www.jst.go.jp/pr/announce/20151120-2/#YOUGO3
前スレ
オブジェクト指向は愚かな考え。この世は計算式 ★2
http://peace.2ch.net/test/read.cgi/tech/1450153388/
探検
オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net
2016/01/05(火) 02:10:25.72ID:hJUQcrkl
629デフォルトの名無しさん
2016/08/04(木) 14:41:37.79ID:gwNa+xfa >>628
あ、デコレータパターンの実装だったんだ。
同じ感じでこれ実装できる?
class Log
def output(s)
puts s
end
end
class TimeStampLog
def initialize(log)
@log = log
end
def output(s)
@log.output "#{Time.now} #{s}"
end
end
class PidLog
def initialize(log)
@log = log
@pid = Process.pid
end
def output(s)
@log.output "[#{@pid}] #{s}"
end
end
あ、デコレータパターンの実装だったんだ。
同じ感じでこれ実装できる?
class Log
def output(s)
puts s
end
end
class TimeStampLog
def initialize(log)
@log = log
end
def output(s)
@log.output "#{Time.now} #{s}"
end
end
class PidLog
def initialize(log)
@log = log
@pid = Process.pid
end
def output(s)
@log.output "[#{@pid}] #{s}"
end
end
630デフォルトの名無しさん
2016/08/04(木) 14:42:24.41ID:gwNa+xfa log = TimeStampLog.new(PidLog.new(Log.new))
log.output 'aaa'
log.output 'bbb'
log2 = PidLog.new(TimeStampLog.new(Log.new))
log2.output 'aaa'
log2.output 'bbb'
結果:
[24968] 2016-08-04 14:41:58 +0900 aaa
[24968] 2016-08-04 14:41:58 +0900 bbb
2016-08-04 14:41:58 +0900 [24968] aaa
2016-08-04 14:41:58 +0900 [24968] bbb
log.output 'aaa'
log.output 'bbb'
log2 = PidLog.new(TimeStampLog.new(Log.new))
log2.output 'aaa'
log2.output 'bbb'
結果:
[24968] 2016-08-04 14:41:58 +0900 aaa
[24968] 2016-08-04 14:41:58 +0900 bbb
2016-08-04 14:41:58 +0900 [24968] aaa
2016-08-04 14:41:58 +0900 [24968] bbb
631デフォルトの名無しさん
2016/08/04(木) 16:18:58.29ID:0aO0sFCL632デフォルトの名無しさん
2016/08/04(木) 16:59:33.41ID:gwNa+xfa633デフォルトの名無しさん
2016/08/04(木) 17:09:10.90ID:0aO0sFCL634デフォルトの名無しさん
2016/08/04(木) 17:41:28.54ID:gwNa+xfa635デフォルトの名無しさん
2016/08/04(木) 18:07:30.87ID:iDV12Qqy >>626
だーかーらー、
デコレータパターンという、修飾オブジェクトで被修飾オブジェクトでラップして、両者を同じ基底クラスから派生させることで型に互換性を持たせる、というバッドノウハウは静的型OOPLのためのものにすぎなくて、
同等の機能はSmalltalkでクロージャを使った実装(当然、上記デコレータパターンの実装ではない)で実現できる。
という主張に、どうして「じゃあSmalltalkで実装したデコレータパターンはどうなんだよ」がどれだけ的外れか理解できてる?
だーかーらー、
デコレータパターンという、修飾オブジェクトで被修飾オブジェクトでラップして、両者を同じ基底クラスから派生させることで型に互換性を持たせる、というバッドノウハウは静的型OOPLのためのものにすぎなくて、
同等の機能はSmalltalkでクロージャを使った実装(当然、上記デコレータパターンの実装ではない)で実現できる。
という主張に、どうして「じゃあSmalltalkで実装したデコレータパターンはどうなんだよ」がどれだけ的外れか理解できてる?
636デフォルトの名無しさん
2016/08/04(木) 18:33:42.23ID:0aO0sFCL >>634
> 一方、>>546のコードだとそうはいかない。
単純に、ideone.com/WW8gva はデコレートをテストにハードコードしているからそうなるってだけで
http://ideone.com/HOkUN1 というふうに書いておけば、デコレーターの振る舞いを変えたければ
それを定義した decorate_price.rb だけを変えれば、decorate_price_test.rb は変更不要でしょう。
> 一方、>>546のコードだとそうはいかない。
単純に、ideone.com/WW8gva はデコレートをテストにハードコードしているからそうなるってだけで
http://ideone.com/HOkUN1 というふうに書いておけば、デコレーターの振る舞いを変えたければ
それを定義した decorate_price.rb だけを変えれば、decorate_price_test.rb は変更不要でしょう。
637デフォルトの名無しさん
2016/08/04(木) 18:57:12.60ID:0aO0sFCL >>635
なるほど。たしかにおっしゃるとおりです。的外れなことを言ってすみません。
なるほど。たしかにおっしゃるとおりです。的外れなことを言ってすみません。
638デフォルトの名無しさん
2016/08/04(木) 18:59:34.21ID:iP1jJ0aF >>610
iteratorはどっちが楽なの?
iteratorはどっちが楽なの?
639デフォルトの名無しさん
2016/08/04(木) 19:27:18.45ID:0aO0sFCL >>638
Smalltalk と C++ との比較で? それならもちろん Smalltalk です。
(同書P.289より)
Smalltalkではiteratorを明示的に定義する必要はない。標準的なコレクションクラス(Bag、
Set、Dictionary、OrderedCollection、Stringなど)で、内部iteratorのメソッドdo:を定義してい
るからである。do:はブロック(つまり、closure)を引数としてとる。
(標準的なコレクションクラスの例になぜか名前がありませんが当然Arrayも含みます。念のため。)
Smalltalk と C++ との比較で? それならもちろん Smalltalk です。
(同書P.289より)
Smalltalkではiteratorを明示的に定義する必要はない。標準的なコレクションクラス(Bag、
Set、Dictionary、OrderedCollection、Stringなど)で、内部iteratorのメソッドdo:を定義してい
るからである。do:はブロック(つまり、closure)を引数としてとる。
(標準的なコレクションクラスの例になぜか名前がありませんが当然Arrayも含みます。念のため。)
640デフォルトの名無しさん
2016/08/04(木) 19:40:49.06ID:HlIXxJdQ641デフォルトの名無しさん
2016/08/04(木) 20:21:25.52ID:jTAWnEUa >>635
> デコレータパターンという、修飾オブジェクトで被修飾オブジェクトでラップして、両者を同じ基底クラスから派生させることで型に互換性を持たせる、
修飾オブジェクトで被修飾オブジェクトでラップしてっていうのは
Javaでの実装であって、Rubyのデコレーターパターンには必須ではないよ。
> デコレータパターンという、修飾オブジェクトで被修飾オブジェクトでラップして、両者を同じ基底クラスから派生させることで型に互換性を持たせる、
修飾オブジェクトで被修飾オブジェクトでラップしてっていうのは
Javaでの実装であって、Rubyのデコレーターパターンには必須ではないよ。
642デフォルトの名無しさん
2016/08/04(木) 20:23:12.92ID:jTAWnEUa デコレータパターンは言語によっていろんな実装が有って
Javaでは修飾オブジェクトで被修飾オブジェクトでラップして、両者を同じ基底クラスから派生させることで
型に互換性を持たせる、というバッドノウハウが静的型OOPLだから必要になるけど、
デコレーターパターンはSmalltalkでクロージャを使った実装で実現できる。
Javaでは修飾オブジェクトで被修飾オブジェクトでラップして、両者を同じ基底クラスから派生させることで
型に互換性を持たせる、というバッドノウハウが静的型OOPLだから必要になるけど、
デコレーターパターンはSmalltalkでクロージャを使った実装で実現できる。
643デフォルトの名無しさん
2016/08/04(木) 20:37:49.54ID:0aO0sFCL >>640
Smalltalkが特別ってことにはならないという点については同意します。
ただ、クロージャーを引数にとる内部イテレーターはとても簡潔な記述を可能にするので
C++がSTLを介してイテレーターが組み込みであっても、記述の負担の軽さはSmalltalk方式の方が優位かとも
とはいえ、C++のコードがどんな感じになるかははずかしながら当方ちょっと予想が付きかねますので、
もし可能でしたら、C++のSTLを使って書いてSmalltalkのと比較をさせてもらうことはできますか?
あいにくウィキペにはIteratorの例はないので、こちらの比較的シンプルなJavaの例を
http://qiita.com/jonichonpa/items/208dc2361414f93efacf
Smalltalkで書いてみました
http://ideone.com/oplhQu
もちろんSmalltalk方式を採用した言語(たとえばRuby)なら、Smalltalkと同程度にシンプルに書くことはできます
そんなわけでRuby版も念のため
http://ideone.com/xlQZqc
Smalltalkが特別ってことにはならないという点については同意します。
ただ、クロージャーを引数にとる内部イテレーターはとても簡潔な記述を可能にするので
C++がSTLを介してイテレーターが組み込みであっても、記述の負担の軽さはSmalltalk方式の方が優位かとも
とはいえ、C++のコードがどんな感じになるかははずかしながら当方ちょっと予想が付きかねますので、
もし可能でしたら、C++のSTLを使って書いてSmalltalkのと比較をさせてもらうことはできますか?
あいにくウィキペにはIteratorの例はないので、こちらの比較的シンプルなJavaの例を
http://qiita.com/jonichonpa/items/208dc2361414f93efacf
Smalltalkで書いてみました
http://ideone.com/oplhQu
もちろんSmalltalk方式を採用した言語(たとえばRuby)なら、Smalltalkと同程度にシンプルに書くことはできます
そんなわけでRuby版も念のため
http://ideone.com/xlQZqc
644デフォルトの名無しさん
2016/08/04(木) 20:41:57.05ID:jTAWnEUa イテレーターパターンをSmalltalkで書いてみたわけね。
645デフォルトの名無しさん
2016/08/04(木) 20:47:45.80ID:XSjm71+w イテレータパターンを使わずとも
既にあるイテレータを使った、でしょ
既にあるイテレータを使った、でしょ
646デフォルトの名無しさん
2016/08/04(木) 20:55:24.22ID:HlIXxJdQ >>643
for each (range based for)でいいじゃん。
for (auto& item : collection)
{
// print an item
}
クロージャ風がいいなら、
std::for_each(collection.end(), collection.begin(), [](auto& item){ /* print */}
アイテレーターが登場するけど昔の名残みたいなもんで、
本質じゃないだろ?(範囲を指定してるだけ)
for each (range based for)でいいじゃん。
for (auto& item : collection)
{
// print an item
}
クロージャ風がいいなら、
std::for_each(collection.end(), collection.begin(), [](auto& item){ /* print */}
アイテレーターが登場するけど昔の名残みたいなもんで、
本質じゃないだろ?(範囲を指定してるだけ)
647デフォルトの名無しさん
2016/08/04(木) 21:08:55.10ID:ILqHD9/M >>642
クロージャを使ったらデコレータとは言わないのでは?
デコレータは継承による多態性を用いたものに限定すべき。
同じ事をやる方法なんていくらでもあるから、
そこは継承によるものと限定しておかないと意味分からなくなる。
無論、今のC++やJava、C#だってクロージャもしくは
それに類似した機能を使って同じ様なことはできるし、
Smalltalkだって継承を使ったデコレーターはできる。
言語によってできることできないことと、
各言語の流儀みたいなものは切り分けて考えるべき。
クロージャを使ったらデコレータとは言わないのでは?
デコレータは継承による多態性を用いたものに限定すべき。
同じ事をやる方法なんていくらでもあるから、
そこは継承によるものと限定しておかないと意味分からなくなる。
無論、今のC++やJava、C#だってクロージャもしくは
それに類似した機能を使って同じ様なことはできるし、
Smalltalkだって継承を使ったデコレーターはできる。
言語によってできることできないことと、
各言語の流儀みたいなものは切り分けて考えるべき。
648デフォルトの名無しさん
2016/08/04(木) 21:15:46.97ID:jTAWnEUa649デフォルトの名無しさん
2016/08/04(木) 21:21:02.95ID:CmNfOhbZ >>648
それは定義じゃないだろ。GoF本では定義はStructureのところだ。
それは定義じゃないだろ。GoF本では定義はStructureのところだ。
650デフォルトの名無しさん
2016/08/04(木) 21:29:07.85ID:jTAWnEUa Structureは日本語にしたら
構造って意味ですよw
構造って意味ですよw
651デフォルトの名無しさん
2016/08/04(木) 21:30:27.36ID:CmNfOhbZ652デフォルトの名無しさん
2016/08/04(木) 21:33:42.86ID:TDXgEb4R 継承してないと使えないとかじゃ困る。
653デフォルトの名無しさん
2016/08/04(木) 21:34:27.18ID:jTAWnEUa > そこが実質的な定義だと(俺様が)言ってるの。
知らんがなw
お前が何を言ったところで、
Structureは日本語にしたら構造
Definition(定義)じゃない。
まさか単語の意味を強弁するとは思わなかったなw
知らんがなw
お前が何を言ったところで、
Structureは日本語にしたら構造
Definition(定義)じゃない。
まさか単語の意味を強弁するとは思わなかったなw
654デフォルトの名無しさん
2016/08/04(木) 21:39:49.22ID:CmNfOhbZ >>653
暗黙の定義ってやつだ。プログラミングしてるなら分かれ。
暗黙の定義ってやつだ。プログラミングしてるなら分かれ。
655デフォルトの名無しさん
2016/08/04(木) 21:51:04.78ID:jTAWnEUa 説得力0w
656デフォルトの名無しさん
2016/08/04(木) 21:51:55.34ID:VNJ4iqic この場合、構造、だとしても問題無い件。
パターンの構造はこうであると定めてる。
パターンの構造はこうであると定めてる。
657デフォルトの名無しさん
2016/08/04(木) 22:03:13.75ID:jTAWnEUa 構造の一例ねw
658デフォルトの名無しさん
2016/08/04(木) 22:10:23.67ID:CmNfOhbZ デザインパターンなんだから特定の構造を集めたものだからな。
同じ事ができるならなんでもいいならパターンとはいわない。
まあ馬鹿は無視して議論続けてくれ。
同じ事ができるならなんでもいいならパターンとはいわない。
まあ馬鹿は無視して議論続けてくれ。
659デフォルトの名無しさん
2016/08/04(木) 22:12:49.41ID:jTAWnEUa まさかデザインパターンがGoFの23個だけだと?
あれはパターン例だよ
あれはパターン例だよ
660デフォルトの名無しさん
2016/08/04(木) 22:14:24.41ID:CmNfOhbZ661デフォルトの名無しさん
2016/08/04(木) 22:20:23.44ID:jTAWnEUa Structureは日本語にしたら構造
Definition(定義)じゃない。
国語と英語の問題なw
Definition(定義)じゃない。
国語と英語の問題なw
662デフォルトの名無しさん
2016/08/04(木) 22:24:49.05ID:CmNfOhbZ アホの一つ覚えとはこのこと
663デフォルトの名無しさん
2016/08/04(木) 22:45:18.74ID:jTAWnEUa 効いてる効いてるw
664デフォルトの名無しさん
2016/08/05(金) 05:47:03.48ID:Q5sCXOre あるプログラム片の構造がパターンカタログのものと異なっていたら、
そのプログラム片はそのパターンの実装とは言えないな。
実際問題として、このスレで出ているRuby実装は、GoFに掲載されたデコレータパターンの実装ではない。
それを無視するなら、あなた (ID:jTAWnEUa) にはデザインパターンを使うための
最低限の素地が備わっていないということ。
そのプログラム片はそのパターンの実装とは言えないな。
実際問題として、このスレで出ているRuby実装は、GoFに掲載されたデコレータパターンの実装ではない。
それを無視するなら、あなた (ID:jTAWnEUa) にはデザインパターンを使うための
最低限の素地が備わっていないということ。
665デフォルトの名無しさん
2016/08/05(金) 07:23:44.09ID:TLRbqbFt >>644
あまりにひどくて、なにをいっているかわからなかった。SmalltalkはともかくRubyのコードも読めないのかと。
内部イテレーターを使ったこの実装をイテレーターパターンだと言い切るのはどう考えても無理があるし、
同じ理屈でクロージャーを使った件の実装をデコレーターパターンだと言い張っているなら混乱するだけだからやめてほしい。
あまりにひどくて、なにをいっているかわからなかった。SmalltalkはともかくRubyのコードも読めないのかと。
内部イテレーターを使ったこの実装をイテレーターパターンだと言い切るのはどう考えても無理があるし、
同じ理屈でクロージャーを使った件の実装をデコレーターパターンだと言い張っているなら混乱するだけだからやめてほしい。
666デフォルトの名無しさん
2016/08/05(金) 08:28:16.86ID:liZAD7d5667デフォルトの名無しさん
2016/08/05(金) 11:01:37.11ID:RHt058cj 結局オブジェクト志向が理解出来なくて管を巻いていたら
世間はプロトコル志向に移ってしまったでござるの巻
お前ら何周遅れたら走り出す気になるの?
世間はプロトコル志向に移ってしまったでござるの巻
お前ら何周遅れたら走り出す気になるの?
668デフォルトの名無しさん
2016/08/05(金) 12:54:45.79ID:Vwi1FrEy Swiftのプロトコルも何周回目か遅れですよ?
ScalaやRustのトレイトとか知らないんですか?
ScalaやRustのトレイトとか知らないんですか?
669デフォルトの名無しさん
2016/08/05(金) 13:11:37.22ID:ccW8btWE イテレータをアイテレータって書いてる人がいるけど
どこの方言なの?
weblioさんの発音もイテレータなんだけど
どこの方言なの?
weblioさんの発音もイテレータなんだけど
670デフォルトの名無しさん
2016/08/05(金) 14:20:51.80ID:1PWjv4l0 weblioワロタw もっとちゃんとした辞書持って来いよ。
Merriam Websterとかさ。和英辞書を引用して日本語論じたりしないだろ?
色々調べてみたけど、Wikitionaryのiterateでは二重母音の発音も載せてる。
その他の辞書では見つからなかった。
実際に英語ネイティブのアメリカ人が/ai/でも発音しているのを聴いたこともある。
伝統的には一般的な発音じゃなかったけど、IT界隈でよく使われているうちに、
発音変種が発生したんじゃないか? 英語発音学的にはどちらでも許容されそうだし。
Merriam Websterとかさ。和英辞書を引用して日本語論じたりしないだろ?
色々調べてみたけど、Wikitionaryのiterateでは二重母音の発音も載せてる。
その他の辞書では見つからなかった。
実際に英語ネイティブのアメリカ人が/ai/でも発音しているのを聴いたこともある。
伝統的には一般的な発音じゃなかったけど、IT界隈でよく使われているうちに、
発音変種が発生したんじゃないか? 英語発音学的にはどちらでも許容されそうだし。
671デフォルトの名無しさん
2016/08/05(金) 14:53:55.08ID:1z/JWFxp672デフォルトの名無しさん
2016/08/05(金) 15:20:22.46ID:Y7jgmn2a >669
iとかitとかitrとかiterとかに略すから
アイ、イット、アイター、アイターとかって呼んでいるのでは
発音している本人に聞かないと真相はわからんがな
iとかitとかitrとかiterとかに略すから
アイ、イット、アイター、アイターとかって呼んでいるのでは
発音している本人に聞かないと真相はわからんがな
673デフォルトの名無しさん
2016/08/05(金) 15:25:47.40ID:j/FnlCNZ クロージャはデコレータじゃないとかPythonに全面的に喧嘩売りすぎだろ
674デフォルトの名無しさん
2016/08/05(金) 15:40:45.96ID:O4e+hfU+ クロージャーを使った実装はデコレーターパターン(GoFの)ではないという話なんだが
675デフォルトの名無しさん
2016/08/05(金) 15:47:55.44ID:1PWjv4l0676デフォルトの名無しさん
2016/08/05(金) 16:10:54.07ID:b8/AN42w Rubyのprependを使った例はDecoratorとしてもいい気がするが、単なるクロージャをDecoratorとは呼べない気がする
677デフォルトの名無しさん
2016/08/05(金) 16:22:03.55ID:VlcB2rw7 デコレータパターンの機能を持っている設計を
全部デコレータパターンとしてしまっては
デザインパターンの意味がないからな
そりゃどんな方法でも同等の機能は実現するかもだが
ある程度を設計をパターン化して縛るのが目的でもあるからね
なんでもOKだったら意味ないよね
全部デコレータパターンとしてしまっては
デザインパターンの意味がないからな
そりゃどんな方法でも同等の機能は実現するかもだが
ある程度を設計をパターン化して縛るのが目的でもあるからね
なんでもOKだったら意味ないよね
678デフォルトの名無しさん
2016/08/05(金) 16:30:02.44ID:1z/JWFxp カタログ化の価値を下げようとする連中は居るんだよ
広義のデザインパターンは〜とか
○○も××パターンの亜流と言えるだろう〜とか
拡大解釈と独自解釈でどんどん元の輪郭をぼやかしていくんだよ
広義のデザインパターンは〜とか
○○も××パターンの亜流と言えるだろう〜とか
拡大解釈と独自解釈でどんどん元の輪郭をぼやかしていくんだよ
679デフォルトの名無しさん
2016/08/05(金) 18:48:03.79ID:zTXcoGD+ >>677
ケーキにホイップクリームのせるのもおちんぽにコンデンスミルクかけるのもデコレーションには違いないだろ実装が違うだけでやってることは完全に同じなのだから継承か委譲かクラスかクロージャかといった細かい違いを気にしなくていいからこその設計だと思うのだよ
ケーキにホイップクリームのせるのもおちんぽにコンデンスミルクかけるのもデコレーションには違いないだろ実装が違うだけでやってることは完全に同じなのだから継承か委譲かクラスかクロージャかといった細かい違いを気にしなくていいからこその設計だと思うのだよ
680デフォルトの名無しさん
2016/08/05(金) 18:50:15.99ID:zTXcoGD+ 実装まで縛るならデザインパターンじゃなくてインプリメンテーションパターンだ
681デフォルトの名無しさん
2016/08/05(金) 19:29:11.85ID:Q5sCXOre682デフォルトの名無しさん
2016/08/05(金) 19:48:51.35ID:7blLYh/r クラス図レベルがデザインパターン。
そこから実際にどう具体的な言語でコードに落とし込むかが実装。
クラス図レベルで全く違うものはパターンとして別物です。
そこから実際にどう具体的な言語でコードに落とし込むかが実装。
クラス図レベルで全く違うものはパターンとして別物です。
683デフォルトの名無しさん
2016/08/05(金) 20:06:03.26ID:i8crE51h おまいら、自動翻訳で日本語をえいごにして、出た英語を自動翻訳で日本語にして、元の日本語と違うってモンクいってるんだよな?
684デフォルトの名無しさん
2016/08/05(金) 20:28:42.82ID:1l5AtzWC >>670
それ単に英語がなまっているだけだから
それ単に英語がなまっているだけだから
685デフォルトの名無しさん
2016/08/06(土) 08:01:13.80ID:70rUJ/gH >>684
なまってるんじゃなくて、発音が[i]の母音に強いアクセントがつくと[ai]に転じるのは普通。
iterateの第1母音は普通は[i]だが、iterateという語を特に強調する時には[ai]になることもある。
ちなみにweblioはUS出身のNLP研究者にも評価が高かったりするから、そう馬鹿にしたものでもない。
なまってるんじゃなくて、発音が[i]の母音に強いアクセントがつくと[ai]に転じるのは普通。
iterateの第1母音は普通は[i]だが、iterateという語を特に強調する時には[ai]になることもある。
ちなみにweblioはUS出身のNLP研究者にも評価が高かったりするから、そう馬鹿にしたものでもない。
686デフォルトの名無しさん
2016/08/06(土) 10:06:20.97ID:FhFbCTi8 >>685
だから英語の訛りでドイツ語やフランス語では起こらない
https://ja.wikipedia.org/wiki/%E5%A4%A7%E6%AF%8D%E9%9F%B3%E6%8E%A8%E7%A7%BB
だから英語の訛りでドイツ語やフランス語では起こらない
https://ja.wikipedia.org/wiki/%E5%A4%A7%E6%AF%8D%E9%9F%B3%E6%8E%A8%E7%A7%BB
687デフォルトの名無しさん
2016/08/06(土) 10:13:18.00ID:BacY3CwA だからどうしたんだって話
688デフォルトの名無しさん
2016/08/06(土) 10:17:01.24ID:BZ9Nu5V3 アイテレータ君は頑張りどころを間違えてる
689デフォルトの名無しさん
2016/08/06(土) 11:27:40.31ID:70rUJ/gH >>686
Haben Sie gelesen, eine deutsche Übersetzung?
Haben Sie gelesen, eine deutsche Übersetzung?
690デフォルトの名無しさん
2016/08/06(土) 12:00:01.53ID:rJo5wxwi691デフォルトの名無しさん
2016/08/06(土) 12:02:23.29ID:rJo5wxwi >>689
Was davon ist im Zusammenhang mit?
Was davon ist im Zusammenhang mit?
692デフォルトの名無しさん
2016/08/06(土) 13:54:29.24ID:70rUJ/gH >>691
Das ist meine Frage.
Das ist meine Frage.
693デフォルトの名無しさん
2016/08/06(土) 15:01:07.75ID:rJo5wxwi Nein, es ist meine Frage
694643
2016/08/06(土) 19:33:40.65ID:rdi0Pbkh そんなアイレテーター君にヒントをもらった>>646 ですが、
週末の余暇を使って調べ調べ C++ で書いてみました。
http://ideone.com/aMHgqO
なるほど。このくらい抽象化して簡潔に書けるなら
今の C++ には35年ほど前の Smalltalk 同様イテレーターパターンは不要と言い切ってよさそうですね。
惜しむらくは逆順用の range-based for くらい用意しておけよ…、という不満は残りますが。^^;
週末の余暇を使って調べ調べ C++ で書いてみました。
http://ideone.com/aMHgqO
なるほど。このくらい抽象化して簡潔に書けるなら
今の C++ には35年ほど前の Smalltalk 同様イテレーターパターンは不要と言い切ってよさそうですね。
惜しむらくは逆順用の range-based for くらい用意しておけよ…、という不満は残りますが。^^;
695デフォルトの名無しさん
2016/08/06(土) 20:05:53.09ID:OCZ+hMAU そもそもbegin, endなどのモロモロが
既に(外部)イテレータ以外の何物でもないわけでw
内部イテレータ形式を欲しがるかどうかはともかく
range-based forとかはどうでもいいよねこの場合
既に(外部)イテレータ以外の何物でもないわけでw
内部イテレータ形式を欲しがるかどうかはともかく
range-based forとかはどうでもいいよねこの場合
696デフォルトの名無しさん
2016/08/06(土) 20:24:55.16ID:fG7kY+EI アメリカ英語なんて
英語の方言そのものだろ。w
トマトをトメイトゥとか、
ポテトをポテイトゥとか
馬鹿みたいな発音するんだぜ。
アイテレーターみたいな馬鹿っぽい発音が好きなのか?
英語の方言そのものだろ。w
トマトをトメイトゥとか、
ポテトをポテイトゥとか
馬鹿みたいな発音するんだぜ。
アイテレーターみたいな馬鹿っぽい発音が好きなのか?
697デフォルトの名無しさん
2016/08/06(土) 21:29:05.67ID:rdi0Pbkh698デフォルトの名無しさん
2016/08/06(土) 22:17:57.01ID:70rUJ/gH >>693
おいおい、Neinに続いて肯定文とか、なんなんだその日本語みたいなドイツ語もどきはw
おいおい、Neinに続いて肯定文とか、なんなんだその日本語みたいなドイツ語もどきはw
699デフォルトの名無しさん
2016/08/06(土) 22:19:24.01ID:70rUJ/gH >>696
はいはい、あなたは馬鹿ですよ。認めてあげましょう。
はいはい、あなたは馬鹿ですよ。認めてあげましょう。
700デフォルトの名無しさん
2016/08/06(土) 22:20:26.81ID:70rUJ/gH701デフォルトの名無しさん
2016/08/07(日) 00:32:53.21ID:Z9t6ZbaZ >>697
ごめん
流れつかめて無かったわ
標準のコンテナにイテレータがあるんなら
それを使う限りはイテレータパターンの必要も無い
(内部イテレータ形式もrange-based forも無くてもいい)
それだけの話
スレの最初のほうに既に書かれてる話
ごめん
流れつかめて無かったわ
標準のコンテナにイテレータがあるんなら
それを使う限りはイテレータパターンの必要も無い
(内部イテレータ形式もrange-based forも無くてもいい)
それだけの話
スレの最初のほうに既に書かれてる話
702デフォルトの名無しさん
2016/08/07(日) 00:34:17.18ID:JriZaYfU もう少し正確に言えば、言語やライブラリが
イテレータパターンを実装しているから、
あとはそれに従うだけって感じかな。
意識せずにイテレータパターンを使っている。
イテレータパターンを実装しているから、
あとはそれに従うだけって感じかな。
意識せずにイテレータパターンを使っている。
703デフォルトの名無しさん
2016/08/07(日) 00:40:31.89ID:fZ/XAaEO704デフォルトの名無しさん
2016/08/07(日) 06:55:15.73ID:N62pNMnU >>702
「意識せずにイテレータパターンを使っている」は大間違い。
「意識せずにイテレータパターンを使っている」は大間違い。
706デフォルトの名無しさん
2016/08/08(月) 12:57:55.81ID:TCnmrmuR おっすおらフリーダムプログラマ
日夜社畜プログラマと戦ってるだ
日夜社畜プログラマと戦ってるだ
707デフォルトの名無しさん
2016/08/08(月) 13:46:12.84ID:jSuSjrUB >>702
> もう少し正確に言えば、言語やライブラリが
> イテレータパターンを実装しているから、
正確に言うなら、イテレータパターンというのは、
> コンテナオブジェクトの要素を列挙する手段を独立させることによって、コンテナの内部仕様に依存しない
> 反復子を提供することを目的とする
実装パターンのことで(Wikipediaより)、言語やライブラリがiterableな何かを提供しているからといって、
それらがイテレータパターンを実装しているとは限らない。
> もう少し正確に言えば、言語やライブラリが
> イテレータパターンを実装しているから、
正確に言うなら、イテレータパターンというのは、
> コンテナオブジェクトの要素を列挙する手段を独立させることによって、コンテナの内部仕様に依存しない
> 反復子を提供することを目的とする
実装パターンのことで(Wikipediaより)、言語やライブラリがiterableな何かを提供しているからといって、
それらがイテレータパターンを実装しているとは限らない。
708デフォルトの名無しさん
2016/08/08(月) 13:48:55.90ID:jSuSjrUB >>680
> 実装まで縛るならデザインパターンじゃなくてインプリメンテーションパターンだ
発想が逆だね。
ある機能を実現するための実装パターンを分類・カタログ化したものが、GoFのデザインパターンだ。
> 実装まで縛るならデザインパターンじゃなくてインプリメンテーションパターンだ
発想が逆だね。
ある機能を実現するための実装パターンを分類・カタログ化したものが、GoFのデザインパターンだ。
709デフォルトの名無しさん
2016/08/08(月) 21:13:01.03ID:BQ4UM/x3 まさしくその通りだね
そして同じ機能だったらどんな設計でもOKとしてしまっては
デザインパターンの意味がない
でもこの話題はもう終わりにしたいね
そして同じ機能だったらどんな設計でもOKとしてしまっては
デザインパターンの意味がない
でもこの話題はもう終わりにしたいね
710デフォルトの名無しさん
2016/08/08(月) 21:24:02.49ID:aqLNls7E だからデザパタなんか、屋根を屋根といってるだけで、トタンなのか瓦なのか藁葺きなのか何も定義してないって言っただろ。
だから積み木のおうちでも構わないんだよなぁ
だから積み木のおうちでも構わないんだよなぁ
711デフォルトの名無しさん
2016/08/08(月) 21:38:41.07ID:dN7u7NbH パンピーは屋根には天井がセットでついてくると本気で思ってそうだから怖い。
712デフォルトの名無しさん
2016/08/08(月) 21:41:39.71ID:q4pU/gN8 >>709
とは言っても言語が違ってもデザインパターンは通用するわけで
実装がたった一つというわけじゃないのは確か
C言語でオブジェクト指向をすることだってあるし、
クラスがなかったES5時代のJavaScriptでもデザインパターンは作れた。
重要なのはデザインパターンの設計に出てくる登場人物があるかどうかではないだろうか?
例えば、Decoratorパターンだと、Component、ConcreteComponent、
Decoretor、ConcreteDecoratorという登場人物がある。
これはクラス図で書かれているだろうけど、別にクラスである必要はない。
例えばクロージャーを使って実装してもかまわない。
またインターフェースは明示的に継承していなくても、事実上特定の関数を実装していなければ
正しく動かないなら、それはインターフェースを使っていると言ってもいいだろう。
これと同じ登場人物が出てくるものは同じデザインパターンといっても良いだろう。
とは言っても言語が違ってもデザインパターンは通用するわけで
実装がたった一つというわけじゃないのは確か
C言語でオブジェクト指向をすることだってあるし、
クラスがなかったES5時代のJavaScriptでもデザインパターンは作れた。
重要なのはデザインパターンの設計に出てくる登場人物があるかどうかではないだろうか?
例えば、Decoratorパターンだと、Component、ConcreteComponent、
Decoretor、ConcreteDecoratorという登場人物がある。
これはクラス図で書かれているだろうけど、別にクラスである必要はない。
例えばクロージャーを使って実装してもかまわない。
またインターフェースは明示的に継承していなくても、事実上特定の関数を実装していなければ
正しく動かないなら、それはインターフェースを使っていると言ってもいいだろう。
これと同じ登場人物が出てくるものは同じデザインパターンといっても良いだろう。
713デフォルトの名無しさん
2016/08/08(月) 21:46:47.76ID:rabkqueT そこまで行ったら別物だって。
クロージャーやら使ってクラス図レベルで逸脱してもいいという
宗派をひらきなよ。
クロージャーやら使ってクラス図レベルで逸脱してもいいという
宗派をひらきなよ。
714デフォルトの名無しさん
2016/08/08(月) 21:57:23.36ID:q4pU/gN8715デフォルトの名無しさん
2016/08/09(火) 05:48:45.82ID:tGFAeOU0 >>712
ばーか
ばーか
716デフォルトの名無しさん
2016/08/09(火) 07:42:08.32ID:ttLAI02G717デフォルトの名無しさん
2016/08/09(火) 09:40:43.48ID:zWs+JfAu >>716
なるほど。言語仕様としてクラスの有無ではなく
継承パターンができていれば、その実装がクロージャーでも
かまわないということですね。
そして継承パターンと言うものには、何が何を継承している
という概念があるはずですから、その「何」が登場人物に
なるわけですか。
なるほど。言語仕様としてクラスの有無ではなく
継承パターンができていれば、その実装がクロージャーでも
かまわないということですね。
そして継承パターンと言うものには、何が何を継承している
という概念があるはずですから、その「何」が登場人物に
なるわけですか。
718デフォルトの名無しさん
2016/08/09(火) 10:28:51.94ID:GFJow9Sf 登場人物という考え方がバカっぽくて無理
719デフォルトの名無しさん
2016/08/09(火) 15:03:31.41ID:V7FsU68Q 「○○言語だともっと簡単に実装できる」君と
「クロージャを使えばもっと簡単に実装できる」君は
いい加減うざいよ?
「クロージャを使えばもっと簡単に実装できる」君は
いい加減うざいよ?
720デフォルトの名無しさん
2016/08/09(火) 16:26:29.88ID:tGFAeOU0721デフォルトの名無しさん
2016/08/09(火) 17:57:41.45ID:7qytW98y デザインパターン
日本語で
設計見本でいいですか?
日本語で
設計見本でいいですか?
722デフォルトの名無しさん
2016/08/09(火) 18:04:53.60ID:c6svxtGU そんな日本語があるか
723デフォルトの名無しさん
2016/08/09(火) 19:57:07.69ID:AUCg5/Tk >>708
それは過程の話な結果として実装を示すならインプリメンテーションパターンと言っているだろうしかしデザインパターンと言っているから実装を抽象化したものだ具体的な実装を示すものではないってことさ
それは過程の話な結果として実装を示すならインプリメンテーションパターンと言っているだろうしかしデザインパターンと言っているから実装を抽象化したものだ具体的な実装を示すものではないってことさ
724デフォルトの名無しさん
2016/08/09(火) 20:07:31.05ID:GFJow9Sf その前に君の書き込みを日本語のパターンにしてください
725デフォルトの名無しさん
2016/08/09(火) 20:08:56.33ID:AUCg5/Tk >>681
設計が実装を具体的に決めてしまったら設計の意味がないと思うんだよおトイレとお風呂が一緒になってますってことと具体的な便器の形とは分けられると思うんですデザインパターンっていうのはいわばそういうものでお風呂とトイレを一緒にしたら便利だよってことさ
設計が実装を具体的に決めてしまったら設計の意味がないと思うんだよおトイレとお風呂が一緒になってますってことと具体的な便器の形とは分けられると思うんですデザインパターンっていうのはいわばそういうものでお風呂とトイレを一緒にしたら便利だよってことさ
726デフォルトの名無しさん
2016/08/09(火) 20:10:54.82ID:AUCg5/Tk >>724
おだまり便器野郎
おだまり便器野郎
727デフォルトの名無しさん
2016/08/09(火) 20:24:12.28ID:FqlEy475 どうせ計算式をクラスにするんだろ?
728デフォルトの名無しさん
2016/08/11(木) 18:28:28.20ID:vQt/3MfO 濃厚電波、完飲。
レスを投稿する
