機械です。
教えていただいた場所を見ているうちに、段々Python3.
0が得体の知れないモノに見えてきました。
例えるなら、K&R CからANSI-Cとゆーか・・・
まぁ、C言語の場合は、私が覚えた時点ですでにANSI-C
だったので、別に気にならなかったのですが・・・
>To be removed:
>
> * The lambda statement [1]
MoinMoinの方に理由が書いてありましたが、「1文法
しかカバーしないので」だそうですね。
・・・理由になるのか、ソレ・・・(怒)
Pythonでは文と式がはっきりと区別されてますから、
キーワードを使う式というのは、確かにPythonとしては
異端だったわけですが、これでもしPEP312が却下された
ら、関数を式の中で定義する方法は完全に失われます。
>という一文が。ついでに
>
>To be removed:
>
> * apply(): use f(*args, **kw) instead [2]
> # map(), filter(): use list comprehensions instead [1]
>
>とも。map好きなんだけどなあ
上に関しては完全な代替手段ですので、実際は問題無
い(書き方が変わるだけ)ですし、なんならapplyやmap
のような関数は簡単に再定義できます。
しかしlambdaは完全にシンタックスなので、関数で置
き換えるわけにはいきません。
もし置き換えるなら、文字列を引数に取る関数にする
しか無いでしょうから・・・
lambda("x,y:x + y")
・・・みたいになるんでしょうかね(うざ・・・)
とにかく、lambdaが全廃されるなら、lambdaパッケー
ジを書いてアップします。
それとも、PythonでSchemeを書いたほうが建設的かも
・・・
さて、3.0については、lambda以外にもかなり不安材料
があります。
'<>'が無くなり、'!='に統一されるのは、'<>'で書い
てきた私にはかなり不満ですが、まぁ、我慢しましょう。
あと、withキーワードはJavaScriptなどでもおなじみ
ですから問題無いでしょう。
しかし、asによる型キャストなんかは、文法がやたら
複雑になったC++を思い出してどうも不安です(C++はい
ろいろと非常に気配りのある言語なのだけど、総体を見
るとなんだか近寄りがたくみえてしまう)
ifキーワードの後の実行文が同じ列に書けないとかは、
現在の強制インデントにさえ抵抗を感じている人には、
相当のプレッシャーになるのではないでしょうか(行が
やたら多いのは、かえってみにくい・・・特に和文環境
では、フォントが比較的大きいので、表示行数が欧文よ
り少ないので、特にそう感じられる)
あと、さり気にかかれている「raw_input,input」の廃
止・・・Javaみたいにsys.stdin.readline()なんて書か
なきゃならないのが、どれだけ初心者のハードルを高く
するのか、理解してるのか? と聞きたいです。
※教育用言語としての価値は、これだけで格段に下がり
ます・・・
昔、Pythonは「オブジェクト指向はオプションだ」と
言ってましたが、どうやらオブジェクト指向化が進んで、
オプションではなくなりつつあるように感じます。
言語としては整備されたのかもしれませんが、やや理
解しにくく、またとっつきが悪くなったような印象がぬ
ぐえません。
強いて言えば、JavaやSmalltalk、それにRubyのような、
「原理」が先行し、さらにPerlやC++のように「多彩な文
法」が容認されているような気がします。
それって、Pythonの魅力、激減だな、と思うのは私だ
けでしょうか?
とにかく色々不安です。
/機械伯爵/