- Rubyの設計上の欠点とは何か?
126 :デフォルトの名無しさん[age]:2014/12/06(土) 15:13:51.07 ID:viXCL8M/ - >>125
ネットで調べたサンプルコード: >>> print "Hello world" Hello world では、試してみよう: >>> print "Hello world" File "<stdin>", line 1 print "Hello" ^ SyntaxError: invalid syntax たしかに動かないね
|
- 動的言語で大規模開発
763 :755[sage]:2014/12/06(土) 16:06:50.42 ID:viXCL8M/ - >>755 では「1 から 3 の範囲を」と書いたけど、具体的なコードを忘れていた
CLU では、>>755 で定義したイテレータ from_to を以下のように利用する for i:int in int$from_to(1, 3) do .... end Ruby では、>>755 で定義したイテレータ from_to を以下のように利用する from_to(1, 3) do |i| .... end >>757 > Pythonでも普通にyieldで 失礼、Python にも yield 文があった ざっと調べてみたけど、どちらかというと(Ruby よりも) Python のほうが CLU のイテレータを忠実に実装しているようだ
|
- 動的言語で大規模開発
764 :デフォルトの名無しさん[sage]:2014/12/06(土) 16:45:53.73 ID:viXCL8M/ - >>760,761
Ruby では >>754 のリンク先文書で Matz が 「イテレータの定義の仕方は驚くほど Ruby に似ています。 真似したんだから当然です。 元々 Ruby のブロックは CLU のイテレータに似たものを実現するためにデザインされたからです」 と書いているように、(おそらく)最初からイテレータが存在していました 少なくとも Ruby 1.4 を元にして1999年に出版された書籍「オブジェクト指向スクリプト言語Ruby」では、 節「2.18.4 yield」で(>>755 のコードのような)イテレータ定義方法が詳しく解説されている それに対して Python にyield文が追加されたのは2001年、おそらく Pytthon 2.x の時代ではないのかな? ・PEP 255 - PEP 255 -- Simple Generators | Python.org https://www.python.org/dev/peps/pep-0255/ もし最初から、あるいは Python 1.x の時代から存在しているなら、ソースを提示してくれ ソースが提示できないのなら、>>760 は > どうしてPythonを推したい人は > 後から追加された機能を元からあったことに > したがるのだろうか? と訂正したほうがいいだろね
|
- 動的言語で大規模開発
771 :デフォルトの名無しさん[sage]:2014/12/06(土) 18:41:59.78 ID:viXCL8M/ - >>767
Python にジェネレータが導入された時期(2001年)からすれば Ruby の成功を見てyield文を追加したんだろうけど、 さすがに「Ruby の真似をしました」とは書けないから CLU にしたんだろね >>769 > まるで Ruby が再発見するまで CLU 以外の言語では存在し得ないような言い方だな。 え、CLU 以降に登場したメジャーな言語で yield 文によるイテレータを備えた言語があったの? 自分は知らないから、教えて欲しいなぁー 少なくとも、時期的には Ruby が再発見するまで Python にはyield文は存在していなかったよね(>>764) 存在していたなら、>>764 でも書いたように、ソースの提示をヨロシクね! >>768 いや、(今のところ)ソースを提示できていないから、 「Pythonを推したい人は後から追加された機能を、さも元からあった(>>760)」かのように ウソをついていたみたいだね どうしてPython使いはウソツキばかりなの? 嘘でもなんでも、議論に勝ちさえすればいいと思っているのかなあ....
|
- 動的言語で大規模開発
776 :デフォルトの名無しさん[sage]:2014/12/06(土) 20:16:53.72 ID:viXCL8M/ - >>772
2001年に O'Reilly から "Ruby in a Nutshell" が出版され世界メジャーデビューを果たしている ・Ruby in a Nutshell - O'Reilly Media http://shop.oreilly.com/product/9780596002145.do Ruby on Rails フィーバーが起きたのは2004年だけど、 すでに2001年には日本だけのガラパゴス言語から脱して 十分に世界でも知られる存在になっていた 当然、世界レベルで "Python vs Ruby" の論争は起きただろうし、 Ruby にはあるけど Python には欠けていると指摘されたのが「洗練されたイテレータ」で、 あわてて追加したのが2001年の PEP 255 (>>764)だったんじゃないかと思われ.... >>773 外部イテレータ、いわゆるジェネレータは Ruby 1.8 にも標準ライブラリで提供されていた 1.9 では、これが組込みライブラリとして再実装されただけ で、「Python では元からyield文があった(>>760)」という主張のソースはまだかなぁーー??? やっぱりPython使いはウソツキばかりなのかね
|