トップページ > プログラム > 2014年12月06日 > viXCL8M/

書き込み順位&時間帯一覧

20 位/244 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000001201010005



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
755
Rubyの設計上の欠点とは何か?
動的言語で大規模開発

書き込みレス一覧

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&#xA0;-&#xA0;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使いはウソツキばかりなのかね


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。