【Perl,PHP】LLバトルロワイヤル13【Ruby,Python】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/10/25(月) 03:23:510153133
2010/10/27(水) 19:10:36普段lambdaなんて使ってないから手が覚えてないのよ。
vimならコードハイライトしてくれるからそれでハマることはないんだけどね。
0154デフォルトの名無しさん
2010/10/27(水) 19:14:37書いてる内容に全く変化が無いだろ?自分の知識の範疇から抜けだした解説が出来ないからね。w
0155デフォルトの名無しさん
2010/10/27(水) 19:14:44> 普段lambdaなんて使ってないから手が覚えてないのよ。
実際、そうなんだろうなと俺は思っていたぞ
lambdaをそもそも使わない人には
lambdaつかえねーだりーと言っても通じるわけはないんだ
俺はstructがあまりに手に馴染んでいるから
abstractをよくabstructと書いてしまうんだが
0156デフォルトの名無しさん
2010/10/27(水) 19:19:52-er と -or の使い分けは死ねる
>>152
文だらけだけど
if (ch = "\n") ... ではまらなくなったり一行が短くなったりで
メリットは拾っていけば結構あるんじゃないか
式指向の言語は一行80文字に収まらなくて汚くなりがち
0157133
2010/10/27(水) 19:25:39あと、vimだとlamまで入力したら C-p で補完してるな。
だから、lambdaって最後まで手で書くのって2ちゃんに書き込むときか、IPythonじゃない
インタラクティブシェルを使うときぐらい。
常に単語補完を使うと、typoで変数名間違えて悩むことが無い。
0158デフォルトの名無しさん
2010/10/27(水) 19:43:27-er と -or の使い分けは死ねる
禿同!
マジ死ねる
> if (ch = "\n")
これはJavaやC#のように、ifのtest式は厳密にboolean値しか
認めないようにすればいいだけだと思う
まあ、Cでも、gccはwarning言うよね
if (p = strchr(s, '\n')) *p = 0;
みたいな正当な場合にも文句言ってくるので
()を余計につけたりする必要があってウザいけど
0159デフォルトの名無しさん
2010/10/27(水) 20:45:290160デフォルトの名無しさん
2010/10/27(水) 21:23:15その例の場合、わざわざプロシージャ使わなくても
x > 0
でいいんじゃないの?という意見もあったりなかったり
0161デフォルトの名無しさん
2010/10/27(水) 21:29:13xs > 0
の間違い
0162デフォルトの名無しさん
2010/10/27(水) 22:26:42そんときにlambdaのスペル間違えまくったな確かにw
あれは打たないと覚えないと思うわ
0163Perl忍者 ◆M5ZWRnXOj6
2010/10/27(水) 22:27:010164デフォルトの名無しさん
2010/10/27(水) 22:31:45それついたのも、Pythonの複雑な式やだやだ精神からだろうなぁ。
もともと複雑だから付けなかったけど、andとorで強引にやる方法があるので、付けることになったんだと思う。
根拠はない。ただの推測。
0165デフォルトの名無しさん
2010/10/27(水) 23:55:57上いってるやつといってないやつの会話を見てるようだぞw
0166デフォルトの名無しさん
2010/10/28(木) 00:16:020167デフォルトの名無しさん
2010/10/28(木) 01:05:440168デフォルトの名無しさん
2010/10/28(木) 01:10:200169デフォルトの名無しさん
2010/10/28(木) 01:22:010170デフォルトの名無しさん
2010/10/28(木) 01:45:25それがわかりやすいとは思えないけど、できたらすごいよね。
0171デフォルトの名無しさん
2010/10/28(木) 01:55:40Python aims to combine "remarkable power with very clear syntax", and its standard library is large and comprehensive.
Its use of indentation for block delimiters is unusual among popular programming languages.
Python使いが文章を書いたなら
Python is a general-purpose high-level programming language.
Python is designed philosophy emphasizes code readability.
Python aims to combine "remarkable power with very clear syntax"
Python's standard library is large and comprehensive.
def use_of_indent():
use of indentation for block delimiters
Python's use_of_indent() is unusual among popular programming languages.
やべーwwwちょーよみやすいwww
0172デフォルトの名無しさん
2010/10/28(木) 02:01:350173デフォルトの名無しさん
2010/10/28(木) 02:33:00英語の苦手な俺には下の方が読みやすい。
誰かの言ってた他言語ユーザーの読みやすさってこういうことなんだなww
0174デフォルトの名無しさん
2010/10/28(木) 03:24:480175デフォルトの名無しさん
2010/10/28(木) 06:59:27filenames = glob.glob('*.html')
def tmp(name):
m = re.search(r'(¥w+)-(¥d+)', name)
return m.group(1), int(m.group(2))
filenames.sort(key=tmp)
うーん今いち。いちいち関数定義を書かなきゃいけないし、テンポラリな関数がsort()より先に来ちゃうし。
できればテンポラリな関数よりメインの処理であるsort()が先に来てほしいよね。
filenames = Dir.glob('*.html')
filenames.sort_by! {|name| name =~ /(¥w+)-(¥d+)/ and [$1, $2.to_i] }
こっちのほうが自然に頭から読み下せる。
他の関数言語なら、いちいちテンポラリな関数を定義しなくて済むし、テンポラリな関数より
メインの処理となる関数名のほうが先に出てくるから、理解しやすい。
それに慣れるとPythonのやり方は不自由を感じる。
こうとか本当に書けないのかな。
filenames.sort(key=lambda name:
m = re.search(r'(¥w+)-(¥d+)', name)
return m.group(1), int(m.group(2))
)
>>127
Pythonエキスパート(と書いて信者と読む)は何をいっても聞く耳持たないって。
前スレでわかっただろ?相手するだけ無駄。
> あれは、要はlambdaがまともなら本来不要な代物で、不便だから導入されたんだろう
同意。ほんとは要らないはずなんだよな、あんな機能。
0176デフォルトの名無しさん
2010/10/28(木) 07:50:20もう別の言語使えよ。使い分けも出来んのか
0177デフォルトの名無しさん
2010/10/28(木) 08:01:15> Pythonのlambdaをこねくり回そうとしてるのPythonユーザーじゃないだろ
複数のLL同士を比較するスレで、Pythonの欠点について話してるんだから
むしろ非Pythonユーザも入って来るのが当たり前だろ
Pythonista同士でやるなら本スレでやればいい話
そして別の言語使え、はちと暴論すぎる。
「名前付けろ」ぐらいならまだ解らんでもないんだが。
0178デフォルトの名無しさん
2010/10/28(木) 08:11:440179デフォルトの名無しさん
2010/10/28(木) 08:11:53一次関数の名前をtmpじゃなくてorderとかにすれば軽減される話ではあるけど、
確かにその例ではRubyの方が頭から読み下せて好ましいね。
Pythonの場合だと、関数内で定義された関数を一旦読み飛ばして、どう使われて
いるかを把握してから内部関数を読まないといけない。
でも、関数の引数の中で関数を定義するのは、 reverse=True みたいにオプショナルな
別の引数もとる場合は読みにくくならない?sortならkey自体がオプショナルだからkeyを
最後に持っていけるけど、高階関数が第一引数として必須な場合もあるんだしさ。
「こう書きたい」っていう話は判るけど、Pythonとしては推奨する書き方を1つにしたくて、
数行の処理が必要で、引数の中に直接書いた方が読みやすいってのはレアケースだから
名前付き関数を推奨してる。
0180デフォルトの名無しさん
2010/10/28(木) 08:12:540181デフォルトの名無しさん
2010/10/28(木) 08:19:460182デフォルトの名無しさん
2010/10/28(木) 08:21:04endの面倒さはselfの面倒さとほぼ等価なので、そこを叩き合っても無限ループだけどな。
0183デフォルトの名無しさん
2010/10/28(木) 08:23:17ここで否定しているやつらはPythonの設計者の意図に聞く耳持たない奴だけだろ。
Python信者が他の言語のユーザーの意見に聞く耳持たないって言う前に、自分がPythonの設計意図に
聞く耳を持てよ。
0184デフォルトの名無しさん
2010/10/28(木) 08:28:05filenames.sort(key=lambda name:
(lambda m:
(m.group(1), int(m.group(2))))(re.search(r'(\w+)-(\d+)', name)))
書けなくもない…が、ますます読めないなw
名前付きのほうがまだ読みやすそうだ
(ところでこのコード、マッチしないファイル名あったらどうすんだw)
>>179
引数の中に直接書くのが読みにくくて名前付き関数を推奨してるなら
lambda自体の存在理由が無くないか?
実際、使う場面が無いだろあれ。俺もdef以外でやることまず無いし。
正直(特に関数型出身者を)混乱させるだけの仕様だと思う。最初からdefしか無いなら迷わないし。
0185デフォルトの名無しさん
2010/10/28(木) 08:30:17むしろ、設計者がlambdaを導入した意図を知りたいな。
>>181
そうだね、endが多くなると邪魔だね。
…で、それが邪魔だとlambdaはどう良くなるんだ
0186デフォルトの名無しさん
2010/10/28(木) 08:31:12> ここで否定しているやつらはPythonの設計者の意図に聞く耳持たない奴だけだろ。
> Python信者が他の言語のユーザーの意見に聞く耳持たないって言う前に、自分がPythonの設計意図に
> 聞く耳を持てよ。
聞く聞かないのレベルが全然違う話を混同すんなよw
0187デフォルトの名無しさん
2010/10/28(木) 08:32:00lambdaの場合は単に「式の中に文を書けない」って制限のデメリットだけどな。
式と文をごっちゃにしてたら問題なかった。
0188デフォルトの名無しさん
2010/10/28(木) 08:33:26さすがに、 x * 2 + 1 とか、超シンプルな式までいちいちdefでやらせるのは面倒すぎだろ。
0189デフォルトの名無しさん
2010/10/28(木) 08:43:58seqfunc(lambda x: x*2+1, seq)
def f(x):
return x * 2 + 1
seqfunc(f, seq)
…俺なら後者選ぶなあ。
それほど面倒さは変わらないし、後でちょっとだけ変更したい時に
lambdaじゃ無理になって書き直すほうが面倒だ。
0190methane
2010/10/28(木) 08:44:25ちゃんと聴いてたのに聞く耳持たない奴認定されて、、、あんまりだ。
0191デフォルトの名無しさん
2010/10/28(木) 08:46:49不特定多数に反応を求めた時点で、そんなことは普通に想定できる話。
想定が甘かったな。
0192methane
2010/10/28(木) 08:57:28特にスクリプト言語としてPythonを見ている人にとっては >>175 みたいなちょっとした
ストレスの積み重ねがキツイだろうね。
0193デフォルトの名無しさん
2010/10/28(木) 09:08:280194デフォルトの名無しさん
2010/10/28(木) 09:19:20lambdaで書けるよ。それ。
読みにくくなるから書きたくないけど。
withはlambdaがないからじゃなくて、入る・出るの機能の抽象化としてできた。
lambdaがあると本来必要ないはずのものは多いけど、
例えばlambdaがあったらintいらないとは(効率の問題を無視したとしても)全く思わないなぁ。
0195デフォルトの名無しさん
2010/10/28(木) 10:17:17>でも、関数の引数の中で関数を定義するのは、 reverse=True みたいにオプショナルな
>別の引数もとる場合は読みにくくならない?
ならねーよ。読みにくくなるような設計にしてるのがまずいとは思わないのか。
> sortならkey自体がオプショナルだからkeyを
>最後に持っていけるけど、高階関数が第一引数として必須な場合もあるんだしさ。
そんな設計にしてるのがまずいってだけだろ。
・クロージャを第1引数にもってこなくてすむRubyやGroovy
・関数が最初の引数になっても違和感のない関数型言語
いいかげんPython信者はほかの言語けなすまえにそれらを勉強しろや。
0196デフォルトの名無しさん
2010/10/28(木) 10:20:28f(x, y)
(lambda y, x: f(x, y))(y, x)
0197デフォルトの名無しさん
2010/10/28(木) 10:24:00foo(..) {|bar|...}
with foo(..) as bar: ...
withとブロック付きメソッドは可読性において変わらないし
コンテキストマネージャとブロック付きメソッドを実装する場合、その実装の
手間も変わらないどころか、中身はほとんど同じものになるのだから
チャーチ数のような極論を持ち出すのはどうかと思うが
0198デフォルトの名無しさん
2010/10/28(木) 10:25:17あれだな、旗色が悪くなると他の言語の別の欠点をとりだして話の流れを変えようとしているんだな。なるほど。信者らしい行動だ。
バトルすれだし、いいぞもっとやれ。
>>194
>lambdaで書けるよ。それ。
>読みにくくなるから書きたくないけど。
じゃあ意味ないじゃん。
> 例えばlambdaがあったらintいらない
まるで意味不明。
0199デフォルトの名無しさん
2010/10/28(木) 10:27:59わりと重要だわな
ま、>>196の言うとおりに、自分でどうとでも出来るけど
Rubyのブロック付きメソッド(groovyなどもパクっている)の場合は
ブロック/クロージャ引数が最後の場合に、それが特別扱いされる仕様だね
0200デフォルトの名無しさん
2010/10/28(木) 10:29:43Pythonのlambdaを強力にしたらって仮定の話をしてるだけで誰もRubyを貶してないよ。
0201デフォルトの名無しさん
2010/10/28(木) 10:29:58my_reduce = lambda f, xs, init: (lambda a: [a.append(f(a[0], x)) or a.pop(0) for x in xs][-1])([init])
残念ながら、例外の発生は、別の例外を発しうる処理を利用する以外にはlambdaじゃできない。
けど、いわゆる普通の計算はlambdaで十分できるはず。
0202デフォルトの名無しさん
2010/10/28(木) 10:30:52「with文は可読性が悪い」とか「実装のためがかかる」とはだれも言ってない。
たんに「関数言語ばりのlambdaがあればwith文はいらないはず」と言ってるだけ。
ほんと話をずらすのが好きだな。というか、相手のいいたいことがわからないだけか。
アスペ乙
0203デフォルトの名無しさん
2010/10/28(木) 10:32:35ちょっと待てwww
いきなりアスペ扱いか
> ほんと話をずらすのが好きだな
って俺を誰だと思ってるんだか知らないが、なぜそんなに喧嘩腰?
0204デフォルトの名無しさん
2010/10/28(木) 10:38:130205デフォルトの名無しさん
2010/10/28(木) 10:41:09そこまで分かってるなら、Pythonはあえてブロック付きメソッドを拒否してることにも気づいてるんだろ?
0206デフォルトの名無しさん
2010/10/28(木) 10:41:42いやそうじゃなくてさ、どーも>>202は何か勘違いしてると思うんだよな
>>197は俺が今日始めてつけたレスだし、俺のレスの意図も読み違えてると
思うんだわ
>>202は少し冷静になったほうがいいよ
0207デフォルトの名無しさん
2010/10/28(木) 10:41:52> 俺を誰だと思ってるんだか知らないが
そりゃしらねーよww
0208methane
2010/10/28(木) 10:42:05「関数言語ばりのlambda」をブロックとして使いやすく実装したのがRubyで、その頻出する用途を
直接構文でカバーしたのがPythonというだけだよね?
元の話題は、「Pythonのlambdaは文が使えないから不便だ」というものなので、
「Pythonの○○はlambdaが強力だったらlambdaでできるよ」じゃなくて、
「lambdaが強力だったらできる○○が今のPythonじゃ面倒だよ」という指摘をしないと的外れだと思う。
>>73 とか >>175 の指摘の方が的を射ている。
0209デフォルトの名無しさん
2010/10/28(木) 10:43:21つか、lambdaがあればブロックつきメソッドもいらないんじゃないの?
0210デフォルトの名無しさん
2010/10/28(木) 10:45:230211デフォルトの名無しさん
2010/10/28(木) 10:48:200212デフォルトの名無しさん
2010/10/28(木) 10:57:13あとブロックはそれ単体でリテラルみたいに使えないってのも設計として微妙なところ。
0213デフォルトの名無しさん
2010/10/28(木) 10:59:00俺は中の人じゃないから分からんけど、要は「WAY」を増やしたくないんだろう、と
思っているよ
0214デフォルトの名無しさん
2010/10/28(木) 10:59:47え?
f = {|x|
...
}
f(x)
みたいにできないの?
0215デフォルトの名無しさん
2010/10/28(木) 11:05:14CLだと関数と普通の値を分けているので、関数と同じ名前の変数を
使えるかわりに、#'とかfuncallとか書く必要があるよね
0216methane
2010/10/28(木) 11:06:46>>181 の指摘って無関係な煽りに見えて、実は結構関係するんだよな。
endあるいは } を省略した代償として、式に書き下せない処理は名前付き関数にしないといけない。
0217デフォルトの名無しさん
2010/10/28(木) 11:11:01似てはいるけど、Lisp-1かLisp-2かというのは名前空間の話なのでちょっと違う。
>>214
できない。Proc.new {|x| ...} か lambda {|x| ...} を使う。今では推奨されてないという話になってるけど
proc {|x| ...} というのもあった。
0218デフォルトの名無しさん
2010/10/28(木) 11:13:32たぶん、Cでいうところのコンマ演算子がないことと、代入が文なこと(式と文が明確に分かれていて、式にできることが少ない)が、もっと大きな要因。
0219デフォルトの名無しさん
2010/10/28(木) 11:13:40> 似てはいるけど、Lisp-1かLisp-2かというのは名前空間の話なのでちょっと違う。
なるほど、ありがとう
0220デフォルトの名無しさん
2010/10/28(木) 11:14:42できないのかよ...
ブロック付きメソッド渡す場面で、そのProcかlambdaを渡すことはできるんだよね?
0221デフォルトの名無しさん
2010/10/28(木) 11:22:18foo = lambda {
...
}
f(x, &foo)
↑これが↓これとほぼ同じ。
f(x){
...
}
0222デフォルトの名無しさん
2010/10/28(木) 11:40:580223デフォルトの名無しさん
2010/10/28(木) 11:58:18f(x, &(foo(n)))みたいになるわけか。
0224デフォルトの名無しさん
2010/10/28(木) 13:45:18代入が文なのも勿論そうだけど
破壊的操作を行うメソッドの多くがNoneを返す仕様なので、
(式だが)式の中で使いやすいようにはできてないってのもあると思うな
>>201が書いている例
a.append(f(a[0], x)) or a.pop(0)
は、代入が式なら単に
a[0] = f(a[0], x)
でいいし、そもそもリストをアキュミュレータにする必要が無い
Pythonの代入には、自由変数にまつわる問題もあるので、より使いにくい
λが単体として問題というより、Pythonの言語仕様がさまざまに絡み合って、
Pythonにおけるλをより使いにくく、無理に書けばcrypticなコードに
なりがちにしているように見える
が、見ての通り、crypticになるのは、必ずしもλのせいではなくて、
要はPythonの言語仕様全般とのインピーダンスアンマッチ、につきると思う
0225デフォルトの名無しさん
2010/10/28(木) 13:46:07そもそもRubyは「関数」を返すことが出来ない。
ブロック(=Procクラスのインスタンス)を返すことは出来るから
まあ意味合いとして似たようなことはできるんだけど。
そもそもRubyには「関数」ってオブジェクトが無いんだわ。
・関数とは、メソッドの一種を便宜上そう呼ぶに過ぎない
・メソッドは必ずオブジェクトに所属する
(いわゆる「関数」と呼ばれるものも例外でなく、「トップレベルでのself」(通称main)に所属する)
・関数が無い代わりに、無名の「手続きの塊」を扱うProcクラスがある
・ブロックやlambdaはProcクラスのインスタンスとして扱われる
ちなみにメソッドや関数の定義内で def を使っても「関数内関数」のようにならず
「メソッドを呼んだ際にメソッドを定義する」という動作になってしまうのも
defが「メソッドの定義」であり、所属先がその際のselfになってしまうから。
「関数内関数」とか「関数を値として使う」みたいなことをしたいときは、Procクラス(lambdaもこれ)を利用する。
0226デフォルトの名無しさん
2010/10/28(木) 18:18:05島根の真実。
松江とかひどい状態なんだぞ。
どこでもRubyだもん。Ruby以外のことがしにくくてしょうがない。
Rubyにあらずんば人にあらずみたいな気がする。
Javaでやりますっつっても役人に全く受けない。予算が付かない。
Rubyの波に乗りなさいって言われてもなぁ。。。。
塩屋が邪魔くさくってしょうがない。
0227デフォルトの名無しさん
2010/10/28(木) 18:24:320228デフォルトの名無しさん
2010/10/28(木) 18:37:330229デフォルトの名無しさん
2010/10/28(木) 20:30:44米子でもあわないだろうけど
0230デフォルトの名無しさん
2010/10/28(木) 20:59:070231デフォルトの名無しさん
2010/10/28(木) 21:02:120232デフォルトの名無しさん
2010/10/28(木) 21:30:31とにかくそのIDの奴の言う事が気に入らないもんだから
何とかしてそのIDの奴のレス勢力を無力化、無効化してやりたいのだが、
かといってどこにツッコミ所があるのか具体的に指摘出来ないし
論破出来る知識も自信も自分には無い、
何より、ヘタにレスを書いてしまうと自分の無知を曝け出す結果となって
かえって自分が周囲の嘲笑の的となってしまうのが怖い。
そこで、とりあえず無言でレスアンカーだけを付けておく事で
「こいつイタイなw晒し上げw」と必死に周囲に印象付けようとする。
具体的指摘を伴わない無言レスアンカーなら
自分の勘違いだったところで自分はちっとも傷付かずに済むからな。
肝心のどう “イタイ” のかについては周囲の流れにお任せ。
きっと読んだ人それぞれが頭の中で勝手に考えてくれるさ!!
抽出廚、レスアンカー厨からは
「ママ、ぼく悔しいよ! こいつをやっつけてよ!」
という悲痛な叫びが聞こえてくる。
0233Perl忍者 ◆M5ZWRnXOj6
2010/10/28(木) 21:45:140234デフォルトの名無しさん
2010/10/28(木) 21:47:00死ね
0235デフォルトの名無しさん
2010/10/28(木) 23:32:43ttp://tabesugi.net/memo/2004/82.html#202238
> それからもうひとつは全然べつの話だが、Python がサイコーなのは オブジェ
> クト至高言語なことでも関数風味なことでもなく、「手続き言語として」サイ
> コーなのだ、 ということに気づいた。今になってみると、Python がとりわけ
> 直観をサポートするようにできていたのは、 インデントだけではないと思う。
> いい例がタプルである。 これは、本来なら一度にひとつの値しか使えないとこ
> ろ (配列の要素とか、関数からの返り値とか、 変数への代入) に複数の値をま
> とめて渡すことができるので、結果としていくつもの状態を 別々に管理するよ
> うな状況で気をもまなくてすんでしまう。これによって制御構造が極端に単純
> でも、 あまり気にならない。これにひきかえ、たとえばループを表すのに
> Ruby のイテレータがわかりやすいとは 到底思えないし、Scheme の末尾再帰が
> わかりやすいとも思えない (複雑な状態遷移があるものを書くとウンザリする)。
> 彼らのアプローチは概念的に単純ではあるが、それによってループが直感的に
> 書けるかというと べつにそういうわけでもないのだ。
「オブジェクト*至高*言語」というのはSmalltalkやRubyを揶揄してるんだろうな。
0236デフォルトの名無しさん
2010/10/28(木) 23:33:25関数型言語としてみたら、代入ってできる必要なくね?
0237デフォルトの名無しさん
2010/10/28(木) 23:37:21ttp://tabesugi.net/memo/2004/82.html#121731
> Computer Programming for Everybody というエッセイを見てはげしく同意する。
> すげー。Guido はこんなことを考えていたのか。 やはり他のスクリプト言語作
> 者とは格が違う。そもそも Perl や Ruby というのは 一部のオタクどもが楽を
> するためだけに存在している言語で、 かれら教育のことなんか何も考えてない。
> しょせんかれらは狭い世界に閉じこもる運命にあるのだ。 それにひきかえ
> Guido はもっとずっと遠くを見ている。エライ。この点で、Python は Scheme
> や Squeak と (理念的に) 肩をならべるものだと思う。しかし Scheme や
> Squeak はセンスがよくても、 実用性という面で Python とは比較にならない
> くらい不便という重大な欠点がある。 もっとも Python もいきなりこんなに便
> 利になったわけではないから、今後 Scheme やら Squeak やらが 発展して便利
> になることもあるかもしれない…けど、実際にはそんなことはなさそうな気がす
> る。 なぜなら彼らは「言語」のことしか考えてなさそうだから! ここがポイン
> トだな。つまり、教育のことだけを考えていたのでは言語は使ってもらえず、
> かといって実用性のことだけを考えていても教育には不向きということか。 両
> 方をうまくバランスさせないとだめなのだ。そこまで言語開発者が考えている
> プログラミング言語は Python ぐらいじゃないかと思う。
0238デフォルトの名無しさん
2010/10/28(木) 23:39:14> い、 日常的に使うソフトウエアを自分でいじれるようになる)」というのは、
> ぺるりん先生もまえに同じことを授業で話していたが、彼も Python が現時点
> では いちばん理想に近いといっていた。Alice Project のこともあるし。 やっ
> ぱそういう遠大なビジョンをもっている人はエライよな。 なぜなら、そういっ
> た計画は将来、本当に重要なものになるだろうし (そうでなければ世の中は非
> 常に暗いものになる)、しかもそれを実現するのには 数十年あるいは数百年と
> いうレベルの長い長い時間がかかりそうだからである。 そして、そういう活動
> をしている人がほとんど米国にばっかりいるというのは (Guido のこの研究計
> 画書も DARPA にあてたものだ)、なんだか心配だ。
>
> ということで、これでますます選民思想が強化されました。 Ruby なんかと一
> 緒にされちゃ困るね。(なにがどう困るのだかは知らない)
選民思想だという自覚はあるだけ前スレの信者よりましか。
しかしこの人もRubyを目のかたきにしてるな。RubyのなにがそうPython信者を熱くさせるのか知りたい。
0239デフォルトの名無しさん
2010/10/28(木) 23:39:500240デフォルトの名無しさん
2010/10/28(木) 23:46:02ネット中のPythonの記事を探し回ってんのか?
0241デフォルトの名無しさん
2010/10/29(金) 00:07:590242デフォルトの名無しさん
2010/10/29(金) 00:12:570243デフォルトの名無しさん
2010/10/29(金) 00:22:310244デフォルトの名無しさん
2010/10/29(金) 00:25:51PythonユーザーはRubyと聞いただけで嫌悪感を持つってのはあると思う
PythonスレにRuby最高とか楽しいとか日本人ならRuby使えとかやられまくったからな
0245デフォルトの名無しさん
2010/10/29(金) 00:28:28今でもブログやツイッターは監視されてるようだしな
0246デフォルトの名無しさん
2010/10/29(金) 00:40:48Pythonは参照透明性を重視した関数型言語ではないのだから
Pythonでコードを書く限り実質的に代入は必要だろ
仮にPythonでループの代わりに末尾再帰で書いても最適化はされないのだから、
糞遅い上にスタックオーバーフローになるだけ
0247デフォルトの名無しさん
2010/10/29(金) 01:01:50昔 Java スレにも shige という奴が居てだな…
0248デフォルトの名無しさん
2010/10/29(金) 04:21:41関数型言語のλでも、値の束縛は大概出来ると思うのだが?
多くはletとかでサポートしてるだろ
0249デフォルトの名無しさん
2010/10/29(金) 04:40:48バインドできるのは一回だけだし。
0250デフォルトの名無しさん
2010/10/29(金) 07:14:25むしろそいつがどうの言うレスでRubyスレでも迷惑してたんだけど
最近だとC#マンセー Windowsでは使い物にならねー厨が一時期いくつかのスレに来なかった?
Rubyのスレにもきてたが
Windowsでは使い物にならね、は同意だが正論でも荒らされてはわな
0251デフォルトの名無しさん
2010/10/29(金) 07:15:40どっちでもいいけど
0252デフォルトの名無しさん
2010/10/29(金) 07:27:51Rubyのブロックはwithを作るようなもんなんだろう。
withのような簡単な制御構造や内部DSLを作りやすい。
この使い方がRails以降多用されている。空気のように〜と上ででていたが実際そう。
だけど上であまり強調されていない理由は、その流れをRubyユーザーがあまりよく思っていないからじゃないか?
Rubyスレでも話題が出ると不満がでることが多々ある。
いきすぎた制御構造の拡張や、内部DSLってさ、
ようするに宣言っぽくかけてRubyらしく振舞わないRubyスクリプトなんだよね
ブロックのネストの度に省略されたselfがバンバン変化する
信じられるかい?
このブロックでメソッドを定義したらどうなるのだろう?
>>225のようにトップレベルに定義されるのだろうか?
別のクラスやモジュールに定義されていないか?
こんな疑問を持ちながら、selfを確かめながら、挙動をソースを見ながら(ドキュメントじゃないぞ)
使わないといけないんだよ、ブロックは。
■ このスレッドは過去ログ倉庫に格納されています