1 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 22:44:02 ] 議論よろしく。
2 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 22:46:31 ] 過疎スレだ?ボコボコにしてやんよ ∧_∧ ( ・ω・)=つ≡つ (っ ≡つ=つ / ) ババババ ( / ̄∪
3 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 00:47:09 ] 是
4 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 02:09:24 ] Haskell は 2 次元文法と括弧付きの文法を簡単に切り替えられるらしいね。
5 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 02:09:44 ] 是
6 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 07:01:34 ] 否
7 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 18:03:50 ] 是
8 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 20:52:04 ] >>4 切り替えるというか混在OKでしょ 他の言語もブレースとインデント両方サポートしてほしい。 ブレースだから、インデントだから、endがうざいから とかが言語選択の理由になってしまうのはつまらんと思う。
9 名前:デフォルトの名無しさん [2007/01/23(火) 20:59:39 ] これって単に好みの問題?
10 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 23:27:21 ] ぶらさがり問題が起きないって言う利点が大きい。 どっちみちインデントが揃ってないプログラムは読みにくいし。 エディタが完璧に整形してくれるのが一番なんだけど。 >他の言語もブレースとインデント両方サポート 機械的に選択可能ならエディタにでも組み込めばいいじゃないかな。
11 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 04:32:33 ] python はこれだから気に入ったけど メソッド第一引数 self で(ノ∀`)アチャーだったので GroovyかPnutsに渋々移行した。
12 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 04:45:25 ] >>10 言語作者がめんどくさがることは各ユーザーがやればいいというわけですね。なるほど。
13 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 04:49:26 ] >>11 あそこはself以外の単語入れてボケるのが面白いのに
14 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 17:57:01 ] >>1 インデントは「制御構造」とは言わないのでは。 制御構造と言ったら普通は順構造(並んでいる順に実行)、分岐構造、反復構造のことを指す。 Python のインデントは「ブロック」を定義するための仕組みだ。
15 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 21:58:16 ] 好きだが、diffフレンドリーでないのが困る。 ブロックをtry-exceptで囲って、さらにブロックの中のバグを取ったりする。 その差分を後で別のブランチにマージするときに、本当に大丈夫かどうか 不安になる。 >11 僕はあそこにselfを入れてくるのがわかりやすくて好きだなぁ。 まぁ、好みの問題だけど。javaのインスタンス変数への暗黙アクセスは 元々嫌いで、毎回thisって打ってたタイプなので尚更。
16 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 22:29:49 ] あれは言語側でメンバ変数と仮引数の名前が同一なら this. 打つように強制して欲しかったと思う。 もしくはコンパイル時に警告を出すとか。デフォで。
17 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 08:05:12 ] >>15 >>16 java知らないけど、その状況って解釈不能じゃね?w
18 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 23:16:18 ] en.wikipedia.org/wiki/Off-side_rule 思ったより数少ないね。
19 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 04:59:32 ] pythonもどきのBoo言語てのもある
20 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 17:11:56 ] 俺自分でインデントするのめんどくさくてテキトーに書き散らして :%!perltidy する人なので、pythonは使えないと思った。
21 名前:デフォルトの名無しさん [2007/03/04(日) 21:34:51 ] 悔い改めよ
22 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 22:09:27 ] アーメン
23 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 22:16:35 ] GNUのキモイインデントが見られないというデメリットがあります
24 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 01:09:34 ] ンギモヂイイ!に見えた
25 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 14:25:34 ] 何のエロマンガだよ。
26 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 15:56:37 ] 東北人?
27 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 06:02:44 ] これって普通のコンパイラコンパイラツールで出来るの?
28 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 14:39:52 ] これってどれ?
29 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 11:10:02 ] Pythonに見られるインデントによる制御構造
30 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 14:57:54 ] LL(1)
31 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 23:15:23 ] 是。
32 名前:デフォルトの名無しさん [2007/07/18(水) 06:38:05 ] パッと見たときにブレースの方が視認性よくね? この良さわからんわ
33 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 07:45:36 ] 二次元映像の認識能力は人によってばらつきがあるからな。 俺はブレースを書かなくてもブロックを表現出来るのであれば積極的に省略したい。
34 名前:デフォルトの名無しさん [2007/07/18(水) 08:26:12 ] >>32 慣れの問題かもしれん
35 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 08:40:10 ] 是
36 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 09:31:08 ] 非
37 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 08:09:51 ] 俺は是 エディタがインデントレベルに応じて色分けとか サポートがあるとさらに良い。
38 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 15:08:12 ] >>32 > パッと見たときにブレースの方が視認性よくね? > この良さわからんわ 箇条書きした文章だと思うんだ!!
39 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 15:27:08 ] > ブレースの方が視認性よくね ブレースを使った言語で、みんな視認性を良く書いてくれてるならね
40 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 18:12:01 ] 方向音痴に地図を描かせてはいけないのと同じだ
41 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 20:55:08 ] Pythonは編集中にインデントレベルを変えると、周辺のレベルが思い出せなくて困ることがある。 C言語ライクな言語だとEmacsで M-x indent-region 一発で済むだけにPythonは書きづらい言語だ。(ただし読む分にはおk
42 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 22:15:05 ] 矩形選択して一気にインデントレベルを変更するんじゃダメなの?
43 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 22:37:26 ] エディタの高水準なサポートを前提にした仕様だよね。
44 名前:デフォルトの名無しさん [2007/07/19(木) 23:57:35 ] >>42 Emacs使った事無いのか?
45 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 06:02:52 ] 俺は Vim 使ってるから Emacs は使わないけど、何で?
46 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 06:21:04 ] ちなみに Vim の矩形選択は Ctrl-V で出来る。Emacs でどうやるかは知らないけど、 今時のエディタなら当然可能だろう。俺がインデントを削る時はまず手で打って、j. で 行数分繰り返すけどね。
47 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 06:57:29 ] "<"涙目。
48 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 07:00:38 ] 皮肉が通じんのか…
49 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 13:59:36 ] なぜ矩形選択なのかと
50 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:22:18 ] >>41 python-modeってそんなに不便なの?!
51 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 21:34:31 ] >43 一応エディタ無しでも組めないことはないだろ エディタ前提のLisp系に比べればまだマシな方じゃね?
52 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 22:15:52 ] Lisp は紙と鉛筆がデフォルトだよ
53 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 22:27:49 ] ブロックの頭にカーソルを置いてC-M-qじゃダメなの?
54 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 22:34:53 ] Pythonだと制御構造を変えるとそれに合わせてインデントも修正しなくちゃならん。 問題はその時にどこからどこまでどの程度インデントをずらすのか、修正してる途中で忘れちまうことがあるんだな。 C言語系だとブレースをいじるだけで済む。インデントはエディタが自動で揃えてくれるが、それは必須でもない。
55 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 22:47:47 ] アホ過ぎる……
56 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 22:49:31 ] 話題がループし始めたな
57 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:13:11 ] >>54 Python 付属の IDLE なら C-] と C-[ Emacs の python-mode なら C-c > と C-c < でブロック全体をインデント/デインデントできるんだが、 そういうエディタの支援を利用しないと云々という話?
58 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 00:59:27 ] >57 そういう話なんじゃね? >51 も >53 ができるエディタが必要って話だろ。 メモ帳で組めなきゃダメなのかよ。
59 名前:58 mailto:sage [2007/07/21(土) 01:03:55 ] って…C-M-qは字下げだったかorz 普段Emacs使わないから覚えてないな…
60 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 02:36:52 ] >>57 制御構造を変えるということはブロックの範囲や位置を変えたりとか色々なわけで、 それはエディタの機能じゃなくて人間の脳味噌でする仕事。 Pythonだとそういうエディタの機能ではカバーできない部分が煩わしいなぁ、と。
61 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 05:25:39 ] >>60 具体例きぼんぬ
62 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 07:33:20 ] みんな普段どんだけ低機能なエディタ使ってるんだよ。
63 名前:自分が勘違いしていることに気づいてなさそうだな… mailto:sage [2007/07/21(土) 09:48:42 ] プログラマがアルゴリズムを考えずに エディタにアルゴリズムを決めて貰うスレはこちらですか?
64 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 18:17:49 ] Python知らないが、こういうことだろ? 仮に if (foo) { proc1; proc2; } と言うロジックがあったときに、proc2を条件から外したいとする。 その場合、当然proc2の行を次の行を入れ替えて if (foo) { proc1; } proc2; とすればいい。しかし、インデント依存言語だとproc2のインデントを変えるだけで済んでしまう。 このように一個の条件式だけなら未だいいが、ループ内の条件式をループ外に出すといった場合には インデントレベルの把握と操作が煩わしい。
65 名前:なんでこんな奴が来てるんだ? mailto:sage [2007/07/21(土) 21:59:01 ] >インデントレベルの把握と操作が煩わしい。 脳内妄想は日記内でおながいしまつ
66 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 22:22:21 ] >>64 「ループ内の""文""をループ外に出すといった場合には」 が カット->ペースト->手作業でインデント揃え カット->ペースト->コマンド一発で勝手にインデントが揃う の差って言いたいんじゃないか?
67 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:16:41 ] >>64 { } を使う言語もどうせ可読性のためにインデントしてるんだから Pythonの方が表記や操作の無駄がなくてよい
68 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 03:52:21 ] >>64 なんてproc2のインデントレベルがそのままだったら露骨に糞コードだろ。
69 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 09:39:23 ] >手作業でインデント揃え はエディタの支援で "一発でインデントを揃える" ことが出来るのに >コマンド一発で勝手にインデントが揃う と何が違うのか意味が分からない
70 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 09:43:52 ] Phython厨が意図的に理解できない振りをしているのか、それとも本当に理解できないのか、どっちなんだろ。
71 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 11:00:29 ] >>69 「コマンド一発で勝手にインデントが揃う」 は { { { なんとか } } } をコマンド一発で { { { なんとか } } } にしてくれる事
72 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 11:45:34 ] >70 いい加減飽きたからこの辺で放置しとくけど... カッコをどこにいれるかと考えている段階&作業に相当するのが 「どのブロックをインデントさせようか」と考えてインデントする作業 なので >71 の「コマンド一発で勝手にインデントが揃う」は そもそも比較対象が存在しないと言うか そういう考え方が無意味なんですけどね… python 使ったことないひとには理解できないかもしれません
73 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 12:28:23 ] リファクタリングしたことないひとには理解できないかもしれません
74 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 14:14:53 ] >>71 例えば Emacs の場合、「コマンド一発」って具体的にどうすんの?
75 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 14:50:48 ] >>74 >>53
76 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 16:42:15 ] C なら indent-region の類いだし python-mode なら↓とかで。 C-c > py-shift-region-right C-c < py-shift-region-left C-c C-r py-shift-region-right C-c C-l py-shift-region-left インデントの意味もこまんど一発の意味合いも違うけど
77 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:08:38 ] 1:1 でマップ出来ないというのはその通りだよね。 この場合は、一部を切り出して比較しても意味が無い。
78 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 00:17:09 ] >>74 ブロックの終端に必ずreturnかpassを付けてから整形する
79 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 00:23:14 ] おお、気づかなかったよ
80 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 00:45:46 ] >>78 それは・・・・・・
81 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 01:03:47 ] それじゃあ、rubyのendのほうがマシw
82 名前:デフォルトの名無しさん [2007/10/11(木) 11:14:00 ] キモイ
83 名前:デフォルトの名無しさん [2007/10/11(木) 11:39:30 ] FORTRAN 最強! 1〜5桁目 行番号を書く。1カラム目にCを書くとその行はコメント行になる。 6桁目 継続行であるときはここに任意の文字(空白又は0以外)を書く 7〜72桁目 本文を書く 73〜80桁目 シーケンシャル番号を書く(行を識別するための番号、本文には影響しない) 123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789- +---+-+----------------------------------------------------------------+-------+ 行番号 コード DO 10 I = 1, 100 WRITE(6,200) I 200 FORMAT(1H ,I3) 10 CONTINUE END
84 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 23:24:36 ] HASKELL !!!!!!
85 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 09:46:27 ] 関数の最後にはreturn を書くクセをつければ def A(): .... return の行頭空白がなくなったとしてもどうにか復元できるけど たとえば for i in range(10): if data[i]==3: break else: print "NOT FOUND" で空白がなくなったらもう復元できないよね それが怖い for の最後には必ず continue をつけるとか。
86 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 20:35:40 ] >>85 何をお仰りたいかわかりませんが つ{} もしくは つ他言語
87 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 17:22:48 ] 行頭の空白が無くなったのを復元しなくてはいけない というシチュエーションは殆ど無いから無問題かと... 2ch に慌てて貼付けた時くらい?
88 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 22:21:36 ] その行頭の空白も、専ブラによっては見れるからなぁ…
89 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 07:56:43 ] 最悪ソース見ればちゃんと残ってる
90 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 20:13:43 ] wxGladeが吐いたコードみてみたら if hoge : hage fuga hige # end if みたいになってた
91 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 20:15:10 ] >>83 パンチカードの時代に作られた言語だから
92 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 20:20:17 ] >>85 for i in range(10): if data[i]==3: break # end if else: print "NOT FOUND" # end for なんかださいけど
93 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 00:58:11 ] そんなもんいちいちつけてコードを醜くするなら別の言語を使え、 とか言い放つPython原理主義者などはいないものか。
94 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 02:19:32 ] >93 ノ endとか書くぐらいならRubyでもやってろと思う
95 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 08:41:21 ] Pythonって実は for i in range(10): { if data[i]==3: break }else: { print "NOT FOUND" } って書いても動く?
96 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 09:12:22 ] 残念なことに構文エラーだ
97 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 00:24:01 ] >>85 >>78 for i in range(10): if data[i]==3: break pass else: print "NOT FOUND" pass
98 名前:デフォルトの名無しさん [2007/11/18(日) 00:11:00 ] インデントが文法的に意味を持たなくたって、 どうせ、一秒でも保守する気のあるコードは必ずインデントして書くわけだから、 どうせだったら、インデントを文法に利用して、不要なブレースだの、endだの を省けたほうが、合理的だし、無駄がなくて美しい。
99 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:18:51 ] 不要なselfもなくしてください
100 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 01:11:44 ] 変な記号をつけるよりselfの方がまし selfは不要じゃないよ
101 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 02:11:57 ] つうか、その話とインデントはまったく独立なわけで・・・
102 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 02:21:08 ] インデントあれば「:」も不要だと思うけど あれは何でのこっているんだろう?
103 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 03:19:07 ] >>100 スコープで文脈ってものを既に導入しているのだから、 selfくらいは省略したときに文脈から判断したっていいんじゃね?
104 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 09:49:06 ] >>103 インタプリタの判断ミスによる副作用を防ぐために、ピリオドを含めてたった 5 文字の self くらい明示的に指定しても良いんじゃね?
105 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 10:11:23 ] コードを書き捨てるだけなら面倒だと思うかもしれないが、 selfが常にあるほうがずっと読みやすいコードになるよ。
106 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 10:14:23 ] メンバ関数定義の最初の仮引数として常にselfを自分で書かなければならない ことだけは、冗長だと感じる
107 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 10:28:53 ] >>102 コロンは,英語の表記習慣から来てるんだと思う。 PEP8のImportsセクションあたり見てみ。項目を列記する前の行にコロンを使う。 ttp://www.python.org/dev/peps/pep-0008/ たとえばこんなの。 Imports should be grouped in the following order: 1. standard library imports 2. related third party imports 3. local application/library specific imports
108 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 12:30:54 ] インタプリタの判断ミス(笑) ミスするのは人間だろう。ミスを防ぐためにselfが 必用だというならインデントをミスった場合の 防波堤としてブレースだって必用だ。
109 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 13:33:41 ] ブレースミスったときの対策も必要だ!
110 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 15:03:16 ] 括弧の閉じ忘れ対策も必要じゃね?
111 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 15:59:30 ] コロンに関して言えば あると見やすいだろってだけの話で深い理由はない。
112 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 16:04:53 ] コロン無いと一行に書けないじゃん if pred: body みたいにさ
113 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 16:25:05 ] 誰が書いても同じ書き方になるのが売りのひとつじゃなかったの?
114 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 17:03:56 ] >>113 んなもん、本当に同じになるわけねーじゃんよ
115 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 17:29:58 ] >>112 行末の「;」が省略可能なんだから 同様に1行に書く時だけ「:」つけるんで いいんでないか?
116 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 17:31:18 ] self じゃなくて s で済ませば3文字減るな
117 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 17:40:57 ] ifとかforやめて全部 ? にすればすごく減るよね。違いは文脈で判断。
118 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 18:03:47 ] 一番重要なのは可読性であって、打鍵数を減らすことじゃないと思うんだが、と言ってみるテスト。
119 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 18:23:18 ] キーワードの短さだけを考えるんじゃねえよ。 可読性もいっしょに考えるんだ。
120 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 18:28:15 ] self、selfってうるさいのも可読性を落とすよ
121 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 18:29:09 ] >>114 だからってわざわざ複数の書き方を許すような文法にしなくてもいいじゃん
122 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 18:40:08 ] self、self ってあって下がるのは読み手のモチベーション。可読性の低下に関しては間接的な影響しか与えないんじゃないかな?
123 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 18:44:58 ] わざわざself省略とかなんでそんな無駄なことしなきゃいけないんだ
124 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 18:57:28 ] まあぶっちゃけselfには利点の方が多いのだが。 selfをいやがる奴に限って「めんどい」とかそういう低レベルなことしか言わないな。 そういうアホはPythonを使わなくて結構。
125 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 19:04:50 ] >>124 禿同。そういうヤツらって実は Python どころか、きちんと機能するコードを書けるかすら疑問。
126 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 19:18:53 ] ぶっちゃけとかいうくせに全然ぶっちゃけた話ししてないじゃん。 さっさと利点の方が多いというところをぶっちゃけてみろよ。 単に論破されるのが怖くて隠し玉をださないくせに、出せば勝てる という根拠の無い自信ででかい態度を取ってるだけに見えるぞ。
127 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 19:33:41 ] >>124 むしろselfがキーワードでないのは半端に思えるんだが。 呼び出すときには obj.method(arg) と書けるのに 定義では def method(self, arg): と書かなければならないのも、汚い。selfがキーワードでないために こう書かなければならないのだとしたら、それこそバカげている。 メンバアクセスを self.member のように書かせること自体は、 可読性のために良いと思えるんだが。
128 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 19:44:45 ] >>127 class.method(obj,arg)
129 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 19:49:32 ] >>128 常にそう書かせるのであれば一貫性はある。だが、実際にはそうではない、でしょ。 限定的に obj.method(arg) にだけ第一引数省略の特権を与える合理的な理由があるとは 思えない。
130 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 19:52:57 ] 関数がファーストクラスオブジェクトでない言語しか 知らないゆとりカワイソス
131 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 19:56:34 ] >>130 それ、全然関係ないだろ OCamlでクラスのメソッドを定義する時に、いちいち第一引数の selfなんて書かせないぞ Pythonがそうであるのは単に実装都合であり、要は手抜きだ
132 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:08:48 ] 第一引数のself書かせないと。それは不便だな。
133 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:12:38 ] 君らの脳内の解釈より、他人が見た時の可読性が重要なんだよ。
134 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:12:52 ] それがインスタンスメソッドなら第一引数がレシーバであるのは自明で、 定義に明示的にselfを書かせないとしても、レシーバを第一引数にして クラスメソッドとして呼び出せるようにすることも出来る。 インスタンスメソッドにわざわざ常にselfを明示的に書かせるPythonは センスが無い。
135 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:13:47 ] >>133 レシーバのselfをわざわざ書かせることも、それが実はキーワードでも 何でもなくて、sと書いてもいいことも、可読性の向上に何ら貢献しないのだが。
136 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:18:47 ] >>135 それは、あなたが賢いからなのでしょうね。私には少なくとも可読性の向上に貢献しています。
137 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:18:59 ] 1) メソッドには第一引数が必要という割り切った仕様。欠点より利点が多いことは,ゆとりプログラマ以外には説明不要なほど自明なこと。 2) 暗黙に第一引数の名前が決まっていた方がみんな便利。 3) だからselfと書く。 これが分からない奴は他の言語使えばいいと思うよ。 ぶっちゃけクラスメソッドの場合の第一引数はclsだぜ。 文盲でない奴はPEP8を読もうな。日本語訳もあることだし。
138 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:22:52 ] >>137 「欠点より利点が多い」理由を説明してくれ。 obj.memfunc() だけを省略可能にする合理的理由についてもな。 決まっていたほうが便利というのなら、それこそコンベンションでなく キーワードにしろ、と。 あんたはPythonが現にそうである、という説明をしているだけだ。 それが良いものであるかどうかという説明にはなっていないぞ。
139 名前:デフォルトの名無しさん [2007/11/18(日) 20:27:39 ]
140 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:30:15 ] 929 名前: デフォルトの名無しさん [sage] 投稿日: 2006/10/18(水) 23:39:44 (´-ω-`) Guidoは疲れ切っていた 煩雑な構文、人によって違うスタイル、そして見えない変数に。 (´-ω-`)Zzz そして眠ってしまった。しかし…… ヒラメキ━━━━(゚∀゚)━━━━!! 単純な構文!スタイル強制!変数はすべて明示!! 俺言語デキタY⌒Y⌒Y⌒Y⌒Y⌒Y⌒(。A。)!!! switch...case欲しいだと? (゚Д゚ )ヤダ!! インデント構文がSM? (*´д`*)ハァハァ クラスの記述が面倒? ( ´_ゝ`)フーン Javaでもやれよ 変数を暗示で使えるようにだと? (^A^)っPerl 俺言語ヽ(´ー`)ノバンザーイ
141 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:30:49 ] obj.memfunc() が本当に省略なのかについて
142 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:32:38 ] 欠点: ゆとりが理解不可能なこと。 利点: それ以外全部(wwww >obj.memfunc() >だけを省略可能にする合理的理由についてもな。 意味不明。ゆとりなりに頭を使って,丁寧に説明してくれよ。 それが礼儀ってものだろ(wwwwww >決まっていたほうが便利というのなら、それこそコンベンションでなく >キーワードにしろ、と。 嫌だね。たまにはselfというローカル変数を作りたくなることもあるし(www >あんたはPythonが現にそうである、という説明をしているだけだ。 そして,お前はまずPythonの現状をよく調べろ。 作者タソがみずからselfの存在意義について言及している文章がたくさん見つかるよ。 あ,ごめん,日本語もできないゆとりが英語なんて読めるわけないよな(wwwwwwwwwww
143 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:34:30 ] >>138 >決まっていたほうが便利というのなら、それこそコンベンションでなく >キーワードにしろ、と。 キーワードは主にパーサーのためにあるのであって,ゆとり脳のためにあるのではないのだが。
144 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:34:47 ] 説明できない人は要りません
145 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:37:01 ] Python信者発狂。 インスタンスメソッドのレシーバにselfだのthisだの書かせない 大半のオブジェクト指向言語よりPythonの方法のほうが「いいものだ」 と無根拠に主張して、その理由は説明できんらしいな。
146 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:38:08 ] >>142 あまりイジめちゃ可哀想だよ。この議論、ゴールドセイントにスティールセイントが戦いを挑むようなモンなんだから。
147 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:38:38 ] >>145 いやいや信者かどうかは微妙だぞ。 ここぞとばかりに荒そうとしているのかもしらん。 かなり頭悪そうだからなあw
148 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:38:42 ] > 嫌だね。たまにはselfというローカル変数を作りたくなることもあるし(www Python信者は自分の都合に応じて「可読性」と言い、 時にはselfというローカル変数を作ってコードの読者を罠にはめるわけか。 で、classだのwhileだのforだのinだのというローカル変数を作りたくなることは ないのかい?
149 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:41:38 ] 他の予約語がもっと多い言語を使っているヤツがゴチャゴチャ言うな。
150 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:43:32 ] 何だその煽りにもなってない煽り。
151 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:44:31 ] >>145 逆に大半のオブジェクト指向言語の方法のほうが「いいものだ」という、あなたの根拠を聞きたいものだね。
152 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:44:48 ] 喧嘩すんなよ。というか、self云々はスレ違いだろ。 selfはウゼーってことで終了しようよ。
153 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:46:08 ] >>148 >で、classだのwhileだのforだのinだのというローカル変数を作りたくなることは >ないのかい? ぶっちゃけないよ(wwwwwwwwwwwwwwwwwwwwwwwwwww
154 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:46:41 ] >>153 selfはあるのに? 論理破綻はなはだしい。
155 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:47:33 ] >>148 高々20数個の予約語も覚えられず,予約語と同名の変数を作りたくなることがあるとは!!! ゆとり脳恐るべし!!!!!!!
156 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:48:06 ] >>151 インスタンスメソッドの第一引数は自明なのだから、その定義において 毎回それを書かせるのは、obj.mem(obj)が冗長であるのと同じ理由で 冗長であり、可読性にも貢献しない。それで十分では?
157 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:48:09 ] >>155 お前は文盲か。
158 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:49:10 ] >>154 155が言っているとおり,予約語と分かっているキーワードを変数名として使いたくなることなんてねえよ(wwwwwwwwwwwwwwwwwwwww
159 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:49:44 ] >>152 全てのselfがウザいと言っているのではない。 インスタンスメソッド定義にわざわざ「常に」selfと書かせるのが ウザいと言っている。 「常に」書くってどういう意味かわかるか? 場合わけがそもそも存在しないんだから、それは自明なんだ、自動化できるんだ。 それをわざわざ人手でやらせてるんだ。 馬鹿馬鹿しいことこの上ない。
160 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:50:10 ] >>158 文盲がお前とアイツと二人いるってことか
161 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:51:21 ] >>158 つまりselfがもともとキーワードとして設計されていれば、文句を 言わないわけだ。 自分のバカさ加減、論理矛盾に全く気づいていないようだねえ。
162 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:52:21 ] >>159 >インスタンスメソッド定義にわざわざ「常に」selfと書かせるのが >ウザいと言っている。 self書かない方が逆にまぎらわしくね?(wwwww
163 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:54:11 ] >>162 メソッドのプリフィックスにm_つければおk
164 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:56:11 ] (w で抽出すると、バカが浮き彫りになりますな。
165 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:57:29 ] >>164 164が抽出されました(wwwwwwwwwwwwwwwwwwwwwww
166 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:58:04 ] で、別にselfはもういいでしょ。 見る人によって利点でもあり欠点でもあるってことで。 すれ違いのことで喧嘩するとか、まともな大人とは思えませんよ。
167 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:58:57 ] >>165 小学生ですかあなたは。
168 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 20:59:14 ] だいたいさあ、Python全肯定しちゃう人ってなんなの?Pythonと自我が融合してんの?
169 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:00:17 ] しかしキーワード増やせなんてプログラマの発言とは思えんな
170 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:01:18 ] ようするにですね、僕がselfを持ち出したのは、>>166 の結論を selfに対してではなく、ブレースvsインデントの議論に対して 導ければと思ってなのです。ですからスレ違いではありません。
171 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:01:38 ] selfに欠点があるのは認めるよ。 そして星の数ほどの人間が、selfをなくす提案をしてきたんだ。 でもそのたびに、self不要論者は論破されて負け続けてきた。 そして誰も、selfなくせと言わなくなりましたとさ。
172 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:02:05 ] 別にselfをキーワードにしなくても、省略可能にすることは可能だろうけどね。
173 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:06:35 ] もう俺言語を作るしかない。基本は型無しのC#。これ。
174 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:08:55 ] >>171 からすると、 ここでselfについて議論しているヤツらはソースが英語だからと言ってチェックを怠ったヤツらの集まりということで終了。
175 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:17:14 ] 残念。2chはその英語のソースをチェックしない人たちの集まりなのです。
176 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:18:24 ] まあFAQなんだけどな。 www.python.org/doc/faq/general/#why-must-self-be-used-explicitly-in-method-definitions-and-calls ゆとり脳のためにFAQを翻訳してやるけど,「よくある質問」ってやつだよ。 英語を勉強して5年後くらいに読んでみれば?(wwwwwwwwwwwwwwwwwww
177 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:21:42 ] 虎の威を借る狐だな
178 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:25:14 ] 頭のないゆとりよりはマシだろう
179 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:25:27 ] >>176 理由の1および3は、メソッド定義の第一引数のselfが好ましい理由の説明に なってないな。 常にself.memberと書かせたほうがいい理由にしかなっていない。そしてそれは 別に否定はしない。 理由の2については、clazz.mem(obj, arg)と書けていいよ、と言っているわけだが、 別にメソッド定義でわざわざselfを手で書かせなくとも、そう呼び出せるように 設計することは可能なわけで、理由としては非常に弱いと言わざるを得ない。
180 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:30:41 ] ところで159は自分が場合分けしてる事に気づいてない模様
181 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:31:43 ] バカがひとりいると、バカを納得させるために細かいルールを作る必要がある。 バカは大抵暇だから、バカほど声が大きい。バカには仕事をさせない方が組織の能率が上がるから。 それがウザイので、他の言語に行ってくれていいよ。
182 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:34:53 ] >>176 次からは、生半可な自分の知識で煽って壮絶に敗北する前に、そのURLを提示するんだ。 今回の経験を生かせば、お前もようやくゆとり脱出の足がかりが出来たことになるよ。
183 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:36:31 ] >>180 Pythonは第一引数のselfのありなしでインスタンスメソッドかどうかを 判別しているのではない、でしょ。 つまりselfは冗長で余計。 selfをsとか書けたからといって、Python信者が好きな可読性とやらが損なわれるだけ。
184 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:37:25 ] >>182 問題提起する前にFAQを先に読んどけよ(wwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwww
185 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:38:16 ] 草はやし過ぎ >>179 に自分で回答できるぐらいの頭はないのか 無いんだろうな
186 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:38:46 ] >>181 今ここに実例がいますしね(あなたのことではありません。念のため)
187 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:40:47 ] あえて言おう、ググレカス、と(wwwwwwwwwwww
188 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:41:10 ] >>184 知ってる? 2chで煽りに使われるwの数は、自身の悔しさ度が反映されるんだよ? 実際どんどん多くなってるでしょ?イライラしすぎでみてらんない。
189 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:42:09 ] >>186 そう、あなたのことです。(念のため)
190 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:45:44 ] 自分のことを言われていると思ったのか…
191 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:47:19 ] こういう時のために2ch先人たちは「オマエモナー」という予約語を用意してくれているようですね。
192 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:48:14 ] >>190 Pythonのルールに従えないバカに言われたくないだけ
193 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:49:31 ] Pythonを使う際にルールに従うのは当たり前ってか、そうじゃなきゃ使えない 言語設計に疑問を持つのは別の次元の話 Python信者は頭が良すぎて感心するわ
194 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 21:51:36 ] じゃあ、宴も酣ですし、そろそろ>>170 に、ここらインデントの議論に導いてもらいましょうか。
195 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 22:14:00 ] 170は逃げたようです
196 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 22:34:23 ] 逃げたんじゃないよ、 FAQを読んでるんだよ(wwwwwwwwwwwww
197 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 22:37:32 ] (w クンは黙っててください。息が草臭いです。
198 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 22:38:32 ] (wも予約語にすればいいんじゃね?ww
199 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 22:41:32 ] _, ._ ( ・ω・) んも〜 ○={=}〇, |:::::::::\, ', ´ 、、、、し 、、、(((.@)wvwwWWwvwwWwwvwwwwWWWwwWw
200 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 23:40:38 ] 草刈りなんてしてないでインデントの議論に導いてくれよ>170
201 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 23:48:24 ] 私は170ではありませんまので、その問いは意味が不明です。
202 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 00:42:35 ] 個人的にself以外の文字列をselfに使ってる人居ませんか?
203 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 00:48:31 ] myがいいね。my希望
204 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 02:52:07 ] まず、Pythonにあるのは関数で、メソッドではない。 obj.method という式は、 class.method の第一引数に obj をbindしている。 なので、 m = obj.method m() とするだけで delegate になる。
205 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 03:01:04 ] 次に、selfを省略できないワケ。 動的言語は、オブジェクトのメンバがコンパイル時に決まらない。 変数の参照で、その変数がローカル変数なのかメンバ変数なのかが 関数の定義を見るだけで区別できないのは非常に危険なので、メンバ 変数への参照はローカル変数への参照から区別しなければならない。 Rubyはメンバ変数を区別するのに専用の記号とルールを用意したが、 それはあまりPythonicでは無いだろう。
206 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 10:43:59 ] >>204 @classmethodとか書かせるし、チュートリアル等のドキュメントで しっかり「メソッド」と書いてあるのに、 >Pythonにあるのは関数で、メソッドではない。 というのはどういう意味で言ってるんだ?
207 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 11:53:41 ] ↓こういう風に書けるってことだと思うが、 本当のところは本人に聞いてけろ。 class ClassA: def __init__(self): self.x = "hello" def methodB(self): print "B:", self.x def funcC(self): print "C:", self.x ClassA.methodC = funcC funcB = ClassA.methodB a = ClassA() a.methodB() funcB(a) funcC(a) a.methodC()
208 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 12:18:17 ] なるほど、意図は理解した。 JavaScriptでもそのように書けるが、JavaScriptでは引数のthisは書かなくていいな。
209 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 15:16:26 ] >Rubyはメンバ変数を区別するのに専用の記号とルールを用意したが、 >それはあまりPythonicでは無いだろう。 オレはこれが嫌いでRubyやる気無くした(ww。 関数っつーか,厳密に言うと「呼び出し可能オブジェクト(callable object)」だと思う。 ゆとり脳に理解不能な話題はやめてさ,そろそろインデントの議論に戻らないか?
210 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 19:34:17 ] >Rubyはメンバ変数を区別するのに専用の記号とルールを用意したが、 >それはあまりPythonicでは無いだろう。 privateなメンバはアンダーバーを二つつける、という、割とよく似た性質のルールがPythonにもありますけど。 Pythonicでは無いから、とか意味不明な理由を持ち出すのは止めといたほうが。
211 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 19:36:35 ] >>202 Python3.0になったら「俺」にする予定
212 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 23:18:06 ] >>210 そのルール知らなくても、private使わないでプログラム書くのは簡単。 そのルール知らなくても、他の言語のプログラミング経験があれば そのルールを使ったプログラムを読むことが可能。 それがRubyやPerlの「知らなきゃ読めない」ルールとの差。 Python方式でもRuby方式でも実現できることを、Python方式で 実現しているということに、「Pythonicだから」という以上の理由が 何故必要?
213 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 00:26:15 ] >>212 あのさぁ、その「知らなきゃ読めない」とかも意味不明だってことに気づいてないでしょ。 例えば、"リストの内包表記"を知らなくて読むことが書くことが出来るか? 出来ないんだよ。 もし「それぐらい推測出来る」とかバカ言うなら、Rubyの@つけるルールだって推測できるだろ。 >Rubyはメンバ変数を区別するのに専用の記号とルールを用意したが、 >それはあまりPythonicでは無いだろう。 第一、210のレスは↑に対するレスだって理解できてる? Rubyのようにメンバ変数を区別するのに専用の記号とルールを用意するりはPythonicじゃないとかアホ言ってる奴に Pythonにも既に似たようなルールがあることを教えてやってんだよ。わかる? お前のレスの意味不明さが。 次はせめて中学校卒業してからレスしてな。
214 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 00:31:15 ] インデントは・・・
215 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 00:33:40 ] インデントはとても合理的だけど、 ブレースによる制御構造も混在しててもいいんじゃないかと思う。
216 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 00:41:45 ] >>213 イタタタタ(wwwwwwwwwwwwww
217 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 04:22:38 ] 関数の右とかifやwhileの右とかの「:」も知らなきゃ書けん罠
218 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 07:43:36 ] >>213 Java系言語一つでも知ってたら、 self.foo を見て、これは this.foo だと気づく。 @foo を見ても判らんだろ? self.__foo を見て、private変数だと判らなくてもプログラム読めるだろ? しかも、なんとなく他人が気軽に触っちゃいけない雰囲気かもしだしてるだろ? 内包表記も、他の言語で内包表記見たことあるなら一瞬で判るし、 そうでなくても後でリストとして利用している部分を見れば雰囲気で判るはずだ。 それでもって、private変数もリストの内包表記も、使わなくても普通に プログラム書けるだろ?なら特殊ルール導入しても良いのがPythonic なんだよ。 論点は特殊ルールの存在自体ではなくて、その特殊ルールを知らなくても プログラムが読める&使わなくても普通に書けるって事。
219 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 09:38:00 ] 三行でおk
220 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 10:55:11 ] >>218 > Java系言語一つでも知ってたら メジャーな言語との類似性から来る類推性、分かりやすさ、 習得しやすさおよび学習・移行の容易さを重視するんなら、 現状では好む・好まざるに関わらず、C系のシンタクスがベストだよ。 そういう意味ではself.fooではなくthis.fooのがずっといい。 selfをmeとか書いてもいいなんてのは論外だ。 __init__だの__call__だのが@と大して違いがあるとも思えんな。 単にPerlチックな記法が嫌いなだけじゃないのか。
221 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 10:59:04 ] 既存の言語に似せていないのに無根拠に「こっちのが分かりやすいだろ」と Pythonicという名前の宗教を押し売りするんだよねえ 既存のメジャーな言語に似ているものが多くの人にとって読みやすく 理解しやすいことは、自明なわけだが
222 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 11:06:23 ] メジャーな言語ってこうですか?わかりません>< <main> <print>Hello, world!</print> </main>
223 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 11:17:36 ] SGML系はプログラミング言語じゃねえし、 プログラミング言語じゃない言語で一番メジャーなのは英語だろw
224 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 11:27:21 ] XSLTはプログラミング言語と言って差し支えない気がする
225 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 17:26:10 ] メジャーなのに似てるかとか読みやすいとかどうでもいいが _と@が同じとか言う奴はヤバい
226 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 18:22:11 ] なんか>>218 を見て、作って欲しいプログラムの要件を説明するときに 「ここをこうやって (画面の前でぐっと握り拳を握る) ぐーっといろいろやって (拳に力を込めてゆっくり動かす) ぱーっと結果を出すだけ (力を抜いて掌を開く) でいいんだけど、簡単にできるよね」 とやってくれたオヤジを思い出した。 いや思いこみはわかるけど、わからんてばw
227 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 20:29:51 ] >>220 >__init__だの__call__だのが@と大して違いがあるとも思えんな。 だーかーらー、コンストラクタというものを知っている人なら __init__ を見て それがコンストラクタだって推測しやすいだろ? @ で何を推測しろと?
228 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 20:39:27 ] >>227 コンストラクタならクラスと同名のが多くのプログラマにとっては 分かりやすいに決まってるだろうに __init__()と__new__()という一見似ているが違うものがあって……なんちゅうことを 何にも知らない奴が読んで「推測」できるかw
229 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 20:48:21 ] そもそも、Pythonicってのが宗教だから意味ないと言うのなら、 Perl, Python, Ruby が平行して存在している意味がない。 end がイヤならPythonにすれば良いし、self. がイヤなら Ruby にすれば良いし、 どっちもイヤなら自分で新しい言語作ればいい。
230 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 21:03:18 ] >>228 そこまで細かい部分推測しなくても読めるじゃん。 __new__知らなくてもクラス書けるじゃん。 クラスもオブジェクトな言語でコンストラクタをクラス名と同じにすると、 クラス名が変わったときにコンストラクタで混乱するじゃん。 それに、他の言語のマネルールをいろんな言語から持ってきたら結局 判りにくくなる。それなら最初からC++なりJava使えば良い。 __init__とか__call__とか、言語にとって特殊な意味のある名前は__foo__の 形をしているというメタルールを一つ導入するだけで、覚えないと いけない予約語を大幅に減らせる。
231 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 22:14:35 ] んだから、__fooだの__bar__だのの意味、あんたの言うメタルールは、 教わらなきゃわからんだろ @と何の違いがあるんだ?
232 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 22:28:05 ] >>225 >_と@が同じとか言う奴はヤバい 激しく同意。まったく意味不明。
233 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 23:10:33 ] >>221 メジャーな言語に似せるつもりならインデントなんてやらねーよ。
234 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 23:25:43 ] #!/bin/env ruby def class Hage fuga = 2 def hoge fuga = 1 end def hige p fuga end end h = Hage h.hige f = Hage f.hoge f.hige
235 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 23:41:06 ] Ruby って色んな所で躓くよな まったく初心者向けじゃない
236 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 23:48:42 ] RubyのことはRubyのスレでやっとくれ
237 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 15:08:57 ] しばらくぶりに来てみたらスレが伸びてるw
238 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 19:47:32 ] >>231 こういうやつは、マニュアルとかは読まないで全て始めるのか? 分かんないもの出てくりゃ調べればいいじゃん。 自分が最初にPythonの__やRubyの@に馴染めませんでしたって、 過去の恥を晒してるだけじゃん。
239 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:09:43 ] バカがいるとスレが伸びる(wwwww バカが居なくなったからスレが沈静化した(wwwwwwwwwwwwwwwwwwwwwwww
240 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 22:36:44 ] 延ばすな馬鹿
241 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 23:57:38 ] 止まっちゃった・・・
242 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 00:09:47 ] 本当に止まっちゃったね。 インデントについての話じゃなく、selfの是非とか話題がそれると盛り上がるところを見ると、 Pythonのインデントによる制御構造って言うほど悪くないんじゃない?どっかの専門家が 言った意見を素人がそのまま自分の意見として言っているようにしか感じないね。
243 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 00:42:40 ] 慣れの問題でしかないからな 要は構造が示せればいいだけなわけだし 括弧でもインデントでもフローチャートでも インデント使うと括弧の対応を自動でチェックしたりしてくれない 素のエディタでもさほど問題にならない、程度の事じゃないかな
244 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 06:12:37 ] 実際 Python 使ってみると インデント崩れで起こるトラブルよりも それ以外の原因でいっぱいトラブルからなぁ
245 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 08:13:34 ] >>244 ウンウン、頭が悪いといろいろ大変だよね。
246 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 09:28:34 ] 一番トラブルのはcopy忘れだな
247 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 01:06:30 ] 悪くはないけど良いとも思わないってのが正直なところ 実際にはどうでもいい
248 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 01:17:37 ] インデントは全然苦にならないんだけど式と文が区別されてて 代入したものをすぐ次の用途に使うときとかに面倒なのが気になる
249 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 09:29:59 ] >>248 >代入したものをすぐ次の用途に使うときとか そんなuglyなコードを書く人とは一緒に仕事したくありませんね。
250 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 09:50:37 ] 一度代入したら十年は寝かさないとね
251 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 10:03:28 ] そうじゃなくてさ。 たとえば、代入と評価は分けて書いた方がいいよね。
252 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 10:18:16 ] おめーの次のセリフはこうだ 「ワンライナーを侮辱するなJOJO」
253 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:37:47 ] ワンライナーを侮辱するなJOJO!・・・ハッ!
254 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 10:05:16 ] どうも。インデントは、どうせ言われなくてもやるから、それほどは 違和感を感じてない初心者です。 でも文法的にインデントをブロックの識別に利用しているのなら、 IF 文の末尾に : (コロン) を付けなくても、次の行がインデントして るならブロック開始なんだから : はいらない子なんじゃないの? ……という疑問が拭えません。 どうして : があるのか、どなたかすっきりさせてください。
255 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 10:11:15 ] if condition == True: break; みたいな書き方をしたい場合はある。こういう場合はコロンがないと超不便。
256 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 10:29:49 ] でもそれは : じゃなくて ; でも同じだからな 次の行に回した時にも省略できない理由にはならないし
257 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 11:43:00 ] 必要か必要でないかだけを言えば必要ない。 でもこの二元論は、 forいらねwhileだけでいいだろとか、 他の言語いらね真のプログラミング言語Lispが既にあるとか(w そういうたぐいのものに近い。 コロンが使われている理由を探すとすれば、 ABC言語の影響を受けているというのと、ある方が見やすいだろっていう辺りになる。 ttp://mail.python.org/pipermail/python-list/2000-December/063055.html
258 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:07:17 ] コロンが付いている理由はエディッタのオートインデントの実装が楽だからだと Guido がどっかで言ってた記憶が
259 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:07:39 ] if の : はなんとか納得できるんだけど else の : はなくてもいいような気がする
260 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:15:38 ] あーその話で思い出したけど、 forにelse使えるなんて、最初何かの間違いかと思ったよ
261 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:20:26 ] >>257 >forいらねwhileだけでいいだろとか、 >他の言語いらね真のプログラミング言語Lispが既にあるとか(w 小さい悩みだなw そんな事言われて気にしてるなよ…
262 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:23:27 ] >>260 forとかwhileを抜けたあとで 全部の要素ループして抜けたのか 途中で中断して抜けたのか 知りたいときって結構あるんだよね Pythonは痒いところに手が届きますな
263 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 01:18:44 ] >>262 >Pythonは痒いところに手が届きますな 細かいところまで練られている感じがするよね。 Pythonの良いところだと思う。
264 名前:254 mailto:sage [2007/12/05(水) 09:43:14 ] >>255 そういう書き方が出来なくても、Python 的には困らない気がします。 >>257 良いポインタの紹介ありがとうございます。やはり冗長だと思ってる 人はいるのですね。 それにしても、キータイプ数を減らすのではなく、冗長性を減らすの でもなく、見易さを求めるのが Pythonic ってことなんだと受け取って よいのでしょうか。 Python を触り始めて、面白いとは思っていますが、そのコンセプトが まだ掴めなくて……ちょっともどかしいカンジの初心者です。
265 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 11:10:26 ] 悟れ。
266 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 13:18:56 ] import this
267 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 21:51:41 ] かゆい所に手が届くくらい練られてるならswitchを作れ! 手が届く範囲だけ痒いって言ってるだけだろ自己満足だ!
268 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 22:10:29 ] switchはelseifで大抵代用可能だが elseifはswitchで代用不可能なケースが多い
269 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 22:45:56 ] >>267 目の玉がかゆいのなら 目の玉を取り出さないと掻けないぞ(wwwwwwwww
270 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 22:49:44 ] これか ja.wikipedia.org/wiki/%E9%A0%AD%E7%97%9B
271 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 12:32:15 ] :が見やすいかどうかはフォントによるな。 次はエディタのフォントも言語仕様になるのかな。
272 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 12:42:02 ] >>268 代用できるっちゃできるが、 if c == 1: elif c == 2: elif c == 3: とかいうif〜elifの羅列は、switchのほうがずっと綺麗に書けるでしょ。 if〜elifだと、変数名を変えたら分岐の数だけ直さなければならなくなる。 「他で代用できるものは要らない」と言うのなら、Pythonは要らないものだらけだよ。
273 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 12:53:00 ] Pythonっていろいろ理由付けてるけど、 最終的にはGuidoの好みだからなぁ。 まともに反論してると馬鹿を見る
274 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 13:47:59 ] >>272 それをswitchで書き換えてずっと綺麗になった!と言うのはセンスを疑う
275 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 13:48:20 ] >>271 >次はエディタのフォントも言語仕様になるのかな。 なるわけないだろバカじゃね???(wwwwwwwwwwwwwwwwww
276 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 14:07:44 ] >>272 > 変数名を変えたら そういう状況は、分岐の形式以前の問題になると思う
277 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 16:10:05 ] >>273 ソースが公開されているんだし、作者の意向に反してこうした方が良いと思える点があるんなら、自分で改良すればいいんじゃないかな?
278 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 22:58:53 ] >>277 それならPythonベースにする必要はないんじゃないかな? 十分ストレスがない言語が別にあればそれを使えばいいんじゃないかな?
279 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 23:06:48 ] >>274 まぁ結局センスの問題だわな
280 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 23:08:23 ] たいてい if c == 1: elif c >= 2 and c <= 8: elif c == 9: みたいな使い方することの方が多いからなぁ rubyのswitchはそれが出来るけど
281 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 23:24:01 ] >>273 >Pythonっていろいろ理由付けてるけど、 >最終的にはGuidoの好みだからなぁ。 Guidoの理由付けに反論できるくらいなら、 Pythonを越える言語をデザインできるセンスがあるってことだと思う。 せいぜいがんばって。
282 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:10:50 ] それくらいは割と誰でも出来そうだな。 その後のモチベーションをキープするのが一番面倒なんだよ。
283 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:23:39 ] 安奈お前の愛の火はまだ燃えているかい
284 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 01:04:58 ] >>280 それがswitchでできてもswitchの意味ないわな。
285 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 04:14:01 ] if c == 1: elif c == 2: elif c == 3: これってかなりダサいプログラムだよ 普通は関数テーブル作ってcでdispatchだろ
286 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 08:06:57 ] エディタのマクロに「行末セミコロンの後はアウトデント」という俺ルールを仕込んでみた
287 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 08:53:31 ] じゃあpassのあとに(ry
288 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 09:33:09 ] じゃあオレは セミコロンキーに改行+アウトデントを割り当てときますね
289 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 10:09:41 ] >>282 >それくらいは割と誰でも出来そうだな。 がんばって俺言語作れよ。 言いっぱなしは と て も 恥ずかしいぞ(www
290 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 12:08:50 ] >>289 恥ずかしいのはお前だよ。本当に丸出しだな。 そんなの大抵のプログラマなら一度は通る道だぜ。
291 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 12:21:53 ] というか、俺言語を作った事が無いプログラマってそんなに多いのか?
292 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 12:43:08 ] 俺言語を作っても、多くの人に受け入れられるものは少ないんじゃない?それができるのならRubyやPythonの開発者のように、それで食っていけるだろうし。 まぁ、できなくてもプログラマとして食ってるヤツは嫌というほど見てきたし、そんなムキになるほどのことでもないような気がするんだけど。ボクはできない方だな (自爆)
293 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 12:56:52 ] > それで食っていけるだろうし えっ、他の仕事もしてるんじゃないの?
294 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 13:13:43 ] ぼくちんはただいまヒキコモリちうなんですが、 ぱいそんをべんきょうしているので いずれはGoogleにはいって、 いちねんくらいでいっしょうつかいきれないくらいのおカネをかせぐつもりでいます!!! こんなぼくちんをおうえんしてくださいね!!!!!!
295 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 14:05:11 ] > えっ、他の仕事もしてるんじゃないの? 「それで食っていける」と「それだけで食っていける」は意味が違うと思います。
296 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 16:20:46 ] Pythonに文句あるなら俺言語作れw
297 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 16:30:32 ] >>292 この流れでは多くの人に受け入れられるかどうかは話してないだろう。 ユーザ多い=良いとか言ってる奴はPerlあたりの真似しまくって結果Perl以下になって 売りは日本製だけ〜みたいなもん平気でつくりそうだ あとユーザ数で語るならRubyじゃなくてPerlを出さないとお里が知れちゃうゾ懿」
298 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 18:32:33 ] 俺言語の話になってることがアホすぎwww
299 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 19:29:16 ] >>295 この場合は、 「それで食っていける」=「それで食えるだけの収入がある」=「それだけで食っていける」 じゃないか?
300 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 21:33:16 ] switch文でbreak無しのcaseで制御が下に落ちていくようなのは どうやってelseifで書くの?どうせそんな糞プログラム書くなとか 言って正当化されるのがオチだろうけど!
301 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 21:34:21 ] >>293 「それだけで食っていける」!=「その仕事しかしていない」 じゃないかな?
302 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 22:21:28 ] >>300 if hoge == 1: HOGE elif hoge == 2: FUGA elif hoge == 3 OR hoge == 2: if shine: SHINE else: IKIRO else: ORZ
303 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 22:29:45 ] >>300 if case1: CASE1 if case2: CASE2 if case3: CASE3 ... ということじゃなくて?
304 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 23:31:44 ] >300 結局その記法ってバグなのか意図なのかが 分かりにくくなることが多いし できるようにするメリットが少ないって判断じゃなかったか?
305 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 23:34:17 ] >>303 いや、いちいち break で脱出するコードにしないと次の case もそのまま 実行される仕様の糞言語があるんだ
306 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 01:15:59 ] >>300 はアレだが>>302 もちょっとどうかと思うのは俺だけではないはずだ
307 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 01:30:55 ] >>302 それで納得できるのかお前は
308 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 03:02:42 ] やっぱRubyだな
309 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 03:36:02 ] このタイミングでこういうコメントを入れるから、「こういう書き方もできます」というシンタックスシュガーに踊らされてばかりで きちんとしたドキュメントも書けない上に、生産性がないのが日本のRubyユーザだと思われるんじゃないかな?
310 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 08:39:02 ] Rubyはソースがドキュントだからってことになってるからなぁ 生産性も糞もないよなぁ
311 名前:デフォルトの名無しさん [2007/12/08(土) 09:40:24 ] 趣味で作ったプログラムを 1年以上経ってからも 保守する気になる言語 ソレがPythonだっただけだ
312 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 10:05:22 ] どの言語で書いても保守する気になるけど?
313 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 10:12:35 ] 俺はドMなのでRubyで小汚く書いたソースコードでも泣きながら保守するぜ!
314 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 10:25:27 ] 今まで見た中でこれは酷いと思ったのがZopeなんだが・・・・
315 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 11:23:17 ] >>310 Rubyの生産性がないと言っているんじゃない。日本のRubyユーザの生産性がないと言っている。
316 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 11:42:59 ] python厨って困るとruby叩きに走るよな。 それも必ず「糞」とか「汚い」とかの言葉が入る。
317 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 12:42:48 ] >>316 自惚れるなよ
318 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 13:14:09 ] Rubyの話題はどうでもよくね?
319 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 14:13:59 ] そろそろインデントの話に戻ろうぜ
320 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 14:32:22 ] ム板でインデントのないコードを書き込む奴はDQN それと、全角インデントにする野郎は氏んでいいよ^^
321 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 14:34:49 ] >>320 そういう話だっけw
322 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 14:35:52 ] それは、行頭の空白文字列を nbsp に変更するプログラムを Python と Ruby と Haskell で書いて比較するというお題と 考えてよろしいかな? ↓じゃあ、まず Python から
323 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 15:46:07 ] しーん。。。
324 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 15:54:58 ] s/^[ ]*/ /g
325 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 16:39:31 ] 話しそれるけど、これって行頭だけでなく全部やっちゃってOKじゃね?
326 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 16:43:54 ] >>324 TAB は良いんだっけ?
327 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 16:53:37 ] >>326 その前にスペース4個でも8個でも1個の になるって問題点が>>324 にはあるぞ
328 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 16:53:52 ] お楽しみ中のところ申し訳ないが ソースを追試する側としては迷惑だからやめてくれ 半角空白でも画面に出ないだけでデータは残ってるから こぴぺするだけで直るんだが にされると復元操作が必要になる 復元プログラムをセットで提示してもらわにゃ
329 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 18:06:47 ] ほえ?
330 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 21:20:23 ] >>328 のコピペ環境 < → < > → > & → & → (←何故か変換されない)
331 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 03:06:42 ] かちゅーしゃ使ってると、全角インデントが一番読みやすいんだけど
332 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 03:08:12 ] >>324 は[ ]*が0回以上の繰り返しだから結論としてインデント消えてないか? あと、キャレット付いてるからgオプション意味ない
333 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 03:09:39 ] >>332 いろいろ間違ってる
334 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 03:22:36 ] >>271 3.0でバッククオートがなくなる理由は`フォントによっては見づらいから`らしい
335 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 03:35:15 ] >>334 フォント、マジだったのかwwww 確かにそこは見にくいことがあるw
336 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 03:46:38 ] >>333 うちの環境のsedで試したところ、インデント消えて一律行頭&nbsp;になったけど? ただし&をエスケープする必要があったけど
337 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 03:52:26 ] >>336 sed知らんがな。 結果うp。
338 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 12:28:44 ] >>332 ,336 すまん。酔っぱらって勘違いしてた。
339 名前:デフォルトの名無しさん [2007/12/24(月) 01:15:37 ] self 論議乗り遅れた('A`) Pythonじゃなくて失礼。 Delphi だと、Selfはかけるけど、with Hoge do 内くらいしか使わないんだよね。 Pythonみたいに、宣言が必要ない言語だと、Self相当は必須なんだね。 よくわかった。 とはいえ、Self必須は面倒だな。 スクリプト言語なのに字数が明らかに多くなる・・・。(perlみたいなのも勘弁だが) わかりやすい点がいいけどさ・・・ :のつけ時は、いっつも、忘れてわからなくなる。
340 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 01:31:57 ] >>3 ($#9737◇$#9737)
341 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 01:32:44 ] $#9737;
342 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 08:54:54 ] selfやな奴は普通に s とか _ とか使えば良いと思う。 とくに、人が書き足したりするようなコードでなければ、好き勝手書けば良いと思う。
343 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 22:37:26 ] >>342 それじゃあインデントでわざわざ記法を強制するような Pythonの思想に反するんじゃね??なんでもいいなら そもそもインデントだっていらなくね?
344 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 22:39:38 ] 凄い論理だ
345 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 23:08:44 ] >>339 何か勘違いしてるような…。 使う使わないは兎も角、大概のOOPLにおいて self や this みたいな「自身」を参照するものは 何らかの形で存在してる。 Pythonの場合の self 議論は 「メソッドの仮引数に self を明示的に書かなければならない」 ってところじゃないかと。
346 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 23:12:56 ] だから "書けば" それでいいじゃん .... 終了
347 名前:デフォルトの名無しさん [2007/12/25(火) 01:21:10 ] WindowsAPI hoge(hWnd, xxx); fuga(hWnd, yyy);
348 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 01:45:19 ] それはハンドル そしてAPIは言語じゃない
349 名前:デフォルトの名無しさん [2007/12/25(火) 04:45:10 ] WindowsAPIは、C言語レベルのAPIだからな。 ハンドル≒OOPのインスタンス=self という解釈なら正しいが、 そうすると、Python が、C言語レ(ry
350 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 05:50:23 ] タイトル:Pythonに見られるインデントによる制御構造の是非 【糞スレランク:D】 直接的な誹謗中傷:0/349 (0.00%) 間接的な誹謗中傷:19/349 (5.44%) 卑猥な表現:2/349 (0.57%) 差別的表現:16/349 (4.58%) 無駄な改行:0/349 (0.00%) 巨大なAAなど:16/349 (4.58%) 同一文章の反復:1/349 (0.29%) by 糞スレチェッカー Ver1.12 kabu.tm.land.to/kuso/kuso.cgi?ver=112 Dって微妙だな・・
351 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 10:38:10 ] 巨大なAAなど:16/349 (4.58%) ってソースコード貼り付けが誤判定されてる気がする
352 名前:デフォルトの名無しさん [2007/12/25(火) 22:01:58 ] タイトル:Pythonのお勉強 Part22 【糞スレランク:E】 直接的な誹謗中傷:0/488 (0.00%) 間接的な誹謗中傷:11/488 (2.25%) 卑猥な表現:8/488 (1.64%) 差別的表現:1/488 (0.20%) 無駄な改行:0/488 (0.00%) 巨大なAAなど:6/488 (1.23%) 同一文章の反復:2/488 (0.41%) by 糞スレチェッカー Ver1.12 kabu.tm.land.to/kuso/kuso.cgi?ver=112
353 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 22:07:42 ] >>352 またひとつ糞レスをつけおって・・・
354 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 22:28:04 ] if hoge == fuga: HOGE else: FUGA if hoge == fuga: HOGE else: FUGA if hoge == fuga: HOGE elsif hoge == hemi: FUGA else: HEMI if hoge == fuga: HOGE elsif hoge == hemi: FUGA else: HEMI
355 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 02:28:13 ] 結局インデントでブロック指定するのは たいして利点は無くて欠点が大きいでOK?
356 名前:デフォルトの名無しさん [2007/12/27(木) 06:10:08 ] 欠点が無くて利点が大きい
357 名前:デフォルトの名無しさん [2007/12/27(木) 06:44:11 ] ONE WORD, FORCED INDENTATION OF THE CODE, THREAD OVER!!!!!!!!!!!!!!!!!!!
358 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 09:11:04 ] インデントはともかくとして pythonで書くとコードが綺麗になるのが好き
359 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 21:12:06 ] 言語仕様に頼らないときれいなコードを書けないおとこの人って・・・
360 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 23:23:04 ] そうだね。Perl使いはみんな綺麗なコードを書くよね。
361 名前:デフォルトの名無しさん [2007/12/28(金) 03:39:25 ] インデント否定派の人はエディターで自動ディデントできないからって言うのが主な理由?
362 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 09:38:20 ] ディデントって何? ポリデントみたいな物か?
363 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 09:47:07 ] インデントの逆
364 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 10:53:19 ] アウトデント? オフデント バックデント モドリデント
365 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 10:57:03 ] デデンドモリ
366 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 14:44:59 ] マジレスするとアンインデントだろ
367 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 14:59:26 ] >>359 誰が書いてもある程度読みやすくなるようにできているのだよ。つまり、書き手よりも読み手を 重視しているんじゃねぇの? (でも、インデントの階層が深くなると、書いていて分かりづらく なってくる。それも狙いかもしれんが。)
368 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 16:13:28 ] >でも、インデントの階層が深くなると、 それは他の言語でも基本的には同じ問題で そうなったら大抵は何か考え直すべきとされてるでそ
369 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 16:37:37 ] Pythonもいろいろ工夫してるけど へぼが書くとやっぱり読みにくい
370 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 19:38:58 ] >>367 そんなに強制したいなら変数の命名規則も強制しろ。 そして変数の名前から型が決まるようにすればいい。
371 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 20:59:40 ] つまり「ネストの深さ」にも「暗黙の制限」が かかっているような言語仕様なんですね。 いくらでも深くネストできるけど、やりすぎちゃダメ!という…
372 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 21:00:27 ] つシステムハンガリアン
373 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 21:31:40 ] >>362 >>364 >>366 www.python.jp/doc/release/ref/indentation.html この説明ではdedentと言ってる
374 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 21:50:46 ] ついでに関数とかメソッドとかブロックの中の行数も制限しようぜ。 5行以内に。
375 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 22:27:39 ] 「強制すんな!おれは空白を何個入れるかで自己表現してんだ!」って思うか 「これでアホのゴミネストに付き合わなくてすむぜ」って思うかで プログラマとしての何かが問われるだろう
376 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 22:45:40 ] >>370 そんなの強制しなくても命名規則を決めればいいだけ 従わないヤツはチームから除外すれば済むし それくらいできないヤツはどうせダメなヤツだから むしろ除外した方がチームのため
377 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 23:06:19 ] >>376 だよな。インデントだってコーディングルールを強制すればよいだけで 従わないやつは排除すればいい。インデントを言語仕様で強制する必用 全然ねえよな。Pythonのインデントに関する理屈は屁理屈
378 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 23:10:52 ] >>377 >インデントだってコーディングルールを強制すればよいだけで そうそう。 インデントを廃止するかわりに,ブラケットやendみたいなキーワードを導入すればいいだけの話だよね。 簡単簡単。
379 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 01:18:06 ] ブラケットやendみたいなキーワードを強制されるのは嫌だな
380 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 01:28:23 ] Ruby書いてるときに def range(start, end) .. って書けないのはちょっといやだな
381 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 01:30:05 ] ブラケットがキーワードなのか
382 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 01:50:36 ] >>375 どちらもアホプログラマにしか思えない
383 名前:デフォルトの名無しさん [2007/12/29(土) 02:12:48 ] 自分たちがちゃんとインデントされてるコードを書いてるかどうかという話と 言語仕様としてインデントでブロックをあらわすということは何の関係も無いわけだけど >>377 と>>378 は何を言ってるんだ?完璧に意味不明
384 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 07:19:11 ] 378は皮肉だろ。多分
385 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 09:31:12 ] ・378を皮肉だと分からないヤツ ・「キーワード」が「ブラケット」と「end」にかかっていると思っちゃうヤツ どっちもPythonistaとして失格。 Monty Pythonでも見ながら基本からやり直した方がいい。
386 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 10:32:26 ] >>379 Python でもかけませんがあにか
387 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 10:38:33 ] >>385 別にPythonistaとやらになりたくはないがな 静的スコープのない言語なんて願い下げ
388 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 10:53:07 ] Pythonは思いっきり静的スコープを採用した言語だが…
389 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 14:06:52 ] まぁ378は皮肉としてはどうかと思うが
390 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 14:12:36 ] そんなこといったら、>>383 のもわかってる煽りだろw
391 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 14:43:48 ] >>383 に食いつくのはプライドが許さない
392 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 20:17:51 ] >>386 これできみはしやわせになれると思うよ。 end = 1
393 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 20:22:38 ] 389=391はおれげんごをつくった。 でもだれもつかわなかった。
394 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 00:28:21 ] そうですか
395 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 12:26:33 ] そうです
396 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 07:34:26 ] おめでとうございます
397 名前:デフォルトの名無しさん [2008/01/04(金) 23:16:45 ] end があると、endだけの行が大量に発生するのが、コードが間延びしてる感じがしてダサい pythonの方がエディタで眺めたときに、均等に情報が並んでる感じがして気持ちいい
398 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 04:29:54 ] Pythonだとここまでで、インデント終わりってのが明確にわからないのだが、 その辺、どうやってみわけるの?
399 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 07:25:06 ] >>398 次の命令のインデントでわかる。 インタラクティブモードの場合は空行を入れることでも可。
400 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 16:34:08 ] >>399 やっぱそうか・・・ エディタとかブラウザで、どこまでスクロールすればいいんだろとか不安になるもんで
401 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 18:18:36 ] why? kwsk
402 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 18:50:31 ] 要するに「ブロック終了」に相当する単語なり文字が目に見えないから不安な気がするってことじゃないか? 自分もpythonはじめたかなり最初の方はそういう感覚があったような気がする
403 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 20:41:45 ] こういうコードに遭遇すると殺意沸くよね def ふにゃふにゃ ぴっぽろ ぱっぽろ # 以下不要なのでコメントアウト # ぷんぱか # ほにゃらら (20行続く) # 2008/1/5 追加しました。 return "こんなところにこんなものが!”
404 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 20:51:11 ] それはPythonに限らないだろ String ふにゃふにゃ() { ぴっぽろ; ぱっぽろ; // 以下不要なのでコメントアウト // ぷんぱか; // ほにゃらら; (20行続く) // 2008/1/5 追加しました。 return "こんなところにこんなものが!"; }
405 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 21:30:30 ] いや、ちがうんだけど、 なんだかとても眠いので寝る。 続きは夢の中で議論しましょう。
406 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 22:26:02 ] じゃ、そうしましょう。 おやすみなさい。
407 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 00:00:56 ] 俺も夢の中で、まってます
408 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 01:05:14 ] じゃあ俺はニシキヘビを持って行くね。
409 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 13:23:26 ] なんで来なかったんだよ!
410 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 13:30:56 ] ごめん、熟睡しちゃった。テヘ
411 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 15:01:51 ] 寝て起きたらやり合うのめんどくさくなった
412 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 17:03:06 ] Pythonの場合、ブロックを跨いだ場所にカット&ペーストしたら 必ず自分でインデント調整せないかんの? 自動整形とか出来なさそう…まぁ、そういう機能ないエディタだと普段やってることだけどさ
413 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 18:28:56 ] ブロックを跨いでるなら自動整形出来るだろ
414 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:24:27 ] インデント調整ってめんどくさくないんだよ!
415 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:30:36 ] >>412 >Pythonの場合、ブロックを跨いだ場所にカット&ペーストしたら >必ず自分でインデント調整せないかんの? そういう場合、ブロックを関数とかメソッドとかに出来るし 何の関係も無い カット&ペーストしたら大抵は何か考え直すべき へぼが書くとやっぱり読みにくい
416 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 08:15:19 ] 考え直して関数・メソッドにする時にカット&ペーストしない?
417 名前:実際に書いたことあれば疑問に思わないんだけどね mailto:sage [2008/01/07(月) 10:42:03 ] ブロックごとペースとしたらそのブロック全体の インデントをちょちょいと直せばいいだけ 直すインデントの量は先頭を見れば自明 何か疑問でも?
418 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 10:49:10 ] dakara sorega mendou datte hanasi dattandaro
419 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 10:51:54 ] ペーストした時点で正しいコードになってるのと ペースト後インデント直さないと正しいコードにならないのとの違いの話だな
420 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 10:58:26 ] めんどうじゃないよ
421 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 11:41:19 ] めんどうだよ
422 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 12:27:11 ] めんどうじゃよ
423 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 12:31:50 ] めんどうでござる
424 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 12:32:58 ] めんどうだったら
425 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 13:18:51 ] めんどうなんだからねっ
426 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 13:20:16 ] カッコで照合する言語の場合は尻尾のカッコの数を間違えて 整合性がとれなくなったりコードがおかしくなったりするわけだけど その際の確認の手間がペーストよりも後ろ側に来てるだけ 面倒もへったくれもないし議論になってねーっつーの
427 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 13:28:32 ] カッコの数を間違えたらSyntax Erorrだと思うが
428 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 15:23:17 ] Pythonもブロックのインデントレベルが違うと構文エラー 大らかなのはアセンブラぐらいかな
429 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 15:43:28 ] 何言ってんの?
430 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 17:19:08 ] Python でインデントレベルが変わるのは : の次と 戻す時だけだから他言語での括弧の不整合と同じく エラーが出るね
431 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 17:48:15 ] よく考えろよ。
432 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 18:23:20 ] お金は大事だぞ
433 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 18:53:07 ] あふぉらっく
434 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 21:00:00 ] python 書いたことある人間がうだうだ言うのはともかく 全く書いたり試したりしないで 脳内でイチャモン生成されても的外れだってことさ
435 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 22:00:38 ] ていうかエラーが出ない人為的なミスに関して話をしてたのに なんで「エラーが出る状況ではエラーがでるから同じだなんて」 って話になってるの?
436 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 23:38:37 ] ネタスレ状態も悪くないと思う俺がいる
437 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 12:45:19 ] >435 が思っているのもネタに過ぎないしな
438 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 15:08:03 ] そりゃエラーが出ない人為的状況はインデントの有る無しと関係ないから つまりスレタイ読めという事
439 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 16:43:39 ] だからその時のミスを防ぐ手だてとかリカバリーの方法だよ。 カッコとかendとかある言語の方がいろいろ手を打てる。 たいていは自動フォーマッタが視覚的にミスに気づかせてくれる。 インデントとブロックを両方プログラマの手にあずけちゃうと、 プログラマがミスしたときの保険が無くなる。
440 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 21:11:44 ] 括弧やendの辻褄で自動フォーマッタが気づかせるレベルのエラーなら Python でもインデントのレベルの辻褄が合わないから同様に気づくと思うが
441 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 21:17:25 ] >>440 書き出すインデントのレベルを勘違するのがミスだろ。 既に勘違いしてるのにどうやって辻褄が合わないことに気づくんだよ。
442 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 22:30:42 ] if hige: fuga fuga pass
443 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 22:32:58 ] んな奴にぬるい気持ちでコピペさせない、が正しい
444 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 22:50:15 ] じゃあ熱く「俺にコピペさせてくれ!オゥイェー!ベイベー!」って言われたらどうするんだよ。
445 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 23:07:35 ] コードをコピペすんなよキチガイ
446 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 23:28:17 ] じゃぁカットアンドペーストにするよ
447 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 23:54:46 ] >>446 天才
448 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 10:28:47 ] じゃ俺はコードの代わりにコンセントを使うよ
449 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 19:09:42 ] 【審議中】 _,,..,,,,_ _,,..,,,,_ _,,..,,,_/ ・ω・ヽ/・ω・ ヽ,..,,,,_ ./ ・ω_,,..,,,,_ l _,,..,,,,_/ω・ ヽ | / ・ヽ /・ ヽ l `'ー--l ll l---‐´ `'ー---‐´`'ー---‐´
450 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:56:52 ] まずは言語仕様の問題と開発環境の問題を区別しよう。 話はそれからだ。
451 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:41:42 ] そんなことより449の審議がいつ終わるかのほうが問題だ
452 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:49:01 ] CM明けなんじゃない?
453 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 00:00:07 ] Python 勉強中のヘタレです。 私も昔の >>402 さんのように終了記号が無いのが不安です。 気が緩んでインデントを間違えてしまう うっかり者は使うな!という言語なんでしょうか…? 前に Python でコード書いてたら、 急に好きなおにゃのこから電話が来て 電話の後インデントしきってないのを忘れて悩みました。 おにゃのこよりインデントを大事にしろ! おしゃべりしててもインデントを忘れるな!って言語なんでしょうか。 コードを見ていると綺麗だとは思うのですが、 書くときは正しくヘビのように絡み付いて 縛り付けられる感じがして辛いです。 皆さんインデントのミスなんてしないんでしょうか? ネタじゃなくてホントに。
454 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 03:26:47 ] >453 俺は他の言語の出身だが、他でもインデントはキッチリ書くよ。 経験上、そうでないと自分がミスリードするし インデントをキッチリ書くことは「当たり前のことを当たり前にやってるだけ」と思ってる。 欠点としては、自動整形が効かないってことかな。 場合によってはこれだけが痛い。
455 名前:453 mailto:sage [2008/01/26(土) 04:14:51 ] 私も普段からインデントはキッチリ書く、 というか書いてないと気がすまないのですが コードを移動したり、差分をマージする時にドキドキしてしまいます。 マージとか他の言語だと、 ひとまずペーストしてインデント揃えて、ってできるんですが Python だとペースト〜揃える間を一息でやらないと怖くて緊張します。
456 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 11:29:03 ] まずアペンドしてからちまちま直せば良いんじゃないだろうか % cat code01.py >> code00.py % vi code00.py
457 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 13:40:14 ] #{ #} というインデントのヒントをコードに埋め込めばいいんだよ。 なんという逆転の発想・・・
458 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 16:35:23 ] pass でブロック終端を表すのはかったるいとおもったけど、 ...(Ellipsis)なら、それほど悪くないかなと思った・・・
459 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 22:43:30 ] > pass でブロック終端を表す そんなことしたっけ? もしかして、空ブロックの代わりにpassって書くのと勘違いしてる?
460 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 23:22:31 ] 目印としてってことじゃねーの
461 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 00:10:41 ] emacs だと pass の行の次はインデントが強制的に1つ引っ込むんだよ 他のエディタはどうなってるか知らんが
462 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 06:10:34 ] それはEmacs特有のサービス(?)だと思うぞ
463 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 08:46:39 ] マクロがあればどんなエディタでもできそうな気がする
464 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 16:19:17 ] 面白い仕掛けだね、pass でインデント終了って
465 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 03:26:02 ] do - end : - pass 文字数は変わらないね
466 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 03:48:01 ] pass って書くなら、4回バックスペース押したほうがいいと思う。 つうか、ブロック毎にいちいち pass pass 書いてる python コードなんて 誰も読む気しない
467 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 07:49:50 ] passなんて空ブロック以外で見たことないぜ
468 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 09:47:35 ] >>467 >>461 設定次第でバックスペースは1回にできそうだな
469 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 09:54:52 ] pass じゃなくて1って書けば?
470 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 15:17:47 ] >>466 そうじゃなくて、自動整形するためのtipsの話じゃなかったのか?
471 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:50:00 ] 個人的な感想だけど、自動整形なんてほとんど使う機会がないな。 そもそも他のソースからのコピペをする機会が少ない。その必要があるときも ブロックを指定してインデントなりデデント(IDLE なら Ctrl-[ と Ctrl-])すれば一瞬で済むし。 ぶっちゃけ、453さんみたいに苦痛を感じる人がいるのが不思議。 経験的に言って、Python のコーディングをきちんとサポートしてくれるツールを使えば インデントに起因する問題は何も起こらないよ。あとは慣れの問題。
472 名前:471 mailto:sage [2008/01/30(水) 17:55:50 ] ふと、インデントに過剰反応する人は考えすぎなのかなーとオモタ。 Python のインデントって自転車みたい。 乗れないうちはバランスとか転んだら痛いとかいろいろ考えちゃうけど、それって無駄。 乗れるようになったら意識しなくても快適に乗りこなせるようになる。
473 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 18:01:49 ] いや、だから、 いきなり }<改行> を入力すれば、勝手にインデントを1段戻した位置にズレて 次の行ではそのまま書き続けられる位置にカーソルが移るような環境に生きていると、 いちいちインデントを調整しながらコードを書くことが苦痛だと。 そういうことじゃないかと思うわけだけど。 書くコードの種類にもよるとは思うけど。
474 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 18:14:51 ] ブレースだろうがインデントだろうがブロックの把握は行わなきゃいけないものだと思うんだが
475 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 19:43:40 ] } 入れるのと Backspace 押すのとじゃ手間に大差ない気がするが
476 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 19:52:09 ] 勝手に動かされるのキライ
477 名前:デフォルトの名無しさん [2008/01/30(水) 20:41:12 ] 他人のソース見るときが一番不安
478 名前:471 mailto:sage [2008/01/30(水) 21:23:09 ] >>473 > 勝手にインデントを1段戻した位置にズレて > 次の行ではそのまま書き続けられる位置にカーソルが移るような環境 すくなくとも IDLE や Emacs の Python モードはそういう環境だよ。 if foo is True: [Enter] で1段インデントされるし return [Enter] で1段デデントされる。return, break, continue, pass 等で終わらないブロックの場合は Backspace の入力が必要だけど、475さんの言うとおり、C 等で } の入力が必要なのと同じ。 そういえば Emacs の C モードで複数行にわたるマクロを書いてて行末の \ が あるのとないのとで自動インデントの振舞いが変わって難儀するのを思い出した。 あとで \ をつけてそろえようと思ってても、自動インデントで思わぬ位置までカーソルが飛んでいく。 まあ善し悪しだね。万能じゃない。
479 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 22:18:18 ] インデントでブロックをあらわすと、最小コストで構造を表現できる。 記号でブロックをあらわすと、プログラマの意図の通りの構造になっているか ダブルチェックすることができる。
480 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 22:23:52 ] 記号でブロックをあらわすと、 見た目と意図が激しく乖離するものが出来上がる現実
481 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:32:28 ] なんで?
482 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:50:03 ] >480 は初心者にコード書かせた場合の話だろうな。 確かに、ブロックを正しく書く癖を付けさせるなら、こういう言語かも知れない。
483 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:48:36 ] インデントブロック無しで書きたいときもあるのだ。たとえば if (hoge) break; とか。 switch (var) { case A: hoge(); break; case B: huge(); break; case C: huga(); break; } とか。
484 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:22:16 ] if hoge: break ってあるよ
485 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:42:51 ] Python に switch はない。 if var==A: hoge1() else if var==B: hoge2() else if var==C: hoge3() もし A,B,C が 0, 1, 2 というふうに序数になっているなら (hoge1, hoge2, hoge3)[var]() だな
486 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:43:53 ] pythonのインデント構造って、エディタからインタプリタにコードをカットアンド ペーストするとき、すごくやりにくいよね。 前に、プレゼンのビデオでデモをやってる人がいて、 先頭にスペースが入っちゃったりして、やりにくそうだった。 また、インデントの深いところの複数行をまとめてコピーするのは不可能だよね。
487 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:24:58 ] 先頭に、if 1: とか入れれば、好きな深さのコード実行できる >>> if 1: ... print 1 ... print 2 ... print 4 ... 1 2 4
488 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 06:41:17 ] if var==A: hoge1(a+b) else if var==B: hoge2(c-d) else if var==C: hoge3(e/f) もし A,B,C が 0, 1, 2 というふうに序数になっているなら (hoge1, hoge2, hoge3)[var]((a+b, c-d, e/f)[var]) ということか
489 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 06:41:54 ] 副作用ワロスw
490 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 09:41:51 ] 俺だったらこうかなあ。 def case_A(): hoge1(a+b) def case_B(): hoge2(c-d) def case_C(): hoge3(e/f) f = (case_A, case_B, case_C)[var] f()
491 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 09:54:55 ] > また、インデントの深いところの複数行をまとめてコピーするのは不可能だよね それはPythonじゃなくてエディタの機能の話だろ。
492 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 11:00:13 ] >> 491 > それはPythonじゃなくてエディタの機能の話だろ。 また、インデントの深いところの複数行をまとめて (エディタからインタプリタに) コピーするのは不可能だよね、という話? 先頭に空白が入っていると、無理。
493 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 12:11:32 ] 矩形選択できるエディタで先頭の空白をさければいいんじゃないの? 何を無理とか不可能とか言ってるのかよくわからん。
494 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:25:29 ] >487 でほとんどの人は困ってないと思うんだよね…
495 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:28:31 ] そんな石器時代的な方法で我慢しないと駄目なのか。
496 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:53:18 ] primitive な方法で解決できるのが一番いい
497 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:55:02 ] ところで、python に else if ってないんだけどさ・・・>>488
498 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 21:29:48 ] 使ってるエディタによりけりかもな。 なんだかLispみたいだ。
499 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 21:34:17 ] >>485 うわあPython読みにくう・・・。
500 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 23:35:29 ] なんで行単位で範囲選択できるエディターを使わないんだろう
501 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 00:53:56 ] だいたいがだ、インデントに関連したバグで悩まされた経験が オマエラあるのか。俺は18年のプログラム暦で一度もない。
502 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 01:01:47 ] >>501 確かに。俺も 20年位インデント関連のバグ書いて悩んだことはないな。 インデントが見栄えだけしか意味持つ言語使ってないから。
503 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 01:35:12 ] アンインデントするときに空行が入っていないソースを ペーストしようとするとエラーになるんですけど どうしたらよいのでしょうか?
504 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 01:35:20 ] >>502 まともなエディタ使ってたら、インデント起因のバグなんてありえんよ。 むしろコーディングに余計な手間を強いるPythonはクソ。
505 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 01:41:42 ] >>500 >行単位で範囲選択できるエディター ってどんなのがあるんでしょうか。
506 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 01:45:46 ] >>505 Vim
507 名前:デフォルトの名無しさん [2008/02/02(土) 01:58:01 ] ぶっちゃけていえばだ、「インデントに起因するバグ防止のため」とか 「読みやすさのため」という理由は、全然説得力ないのよ。 「インデント起因のバグに悩まされた」ことなんてないし、「インデント がそろってないために読みづらい」ソースなんて、小学生ならいざ知らず 普通のソースコードで見たことない。 それなのに、これまでエディタで自動で出来ていたインデントを 手動でやる羽目になる手間といったら!Python使いってなに考えてんの?
508 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 02:08:49 ] >>507 全くそうだよね。 インデントなんか制御構造に使わなけりゃ、 (自分にとっては) pythonほとんど完璧だたったんだか。 これは失敗だったと思うよ。インデントを制御構造に使わないとならない 積極的な理由なんかないんだから。(たぶん)
509 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 08:37:44 ] かっこうざい、というのは積極的な理由にならない? (endうざい、も可) Python で書いてると、コロンもうざい
510 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 11:08:31 ] ブロックの表現法にどれを採用するかなんて作者の趣味で 積極的な理由なんて無いんじゃないの? 問題が無ければ現状維持で良い。問題があるなら、 問題点と改良案を提案すれば良い。むしろ言語がより良い 方向に行くために提案すべきだ。俺的にインデントでブロックを 表現するのが好きだけど、十分に納得できる理由があるなら 他の方法に変更されても全然OK
511 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:45:18 ] >>509 うざいとかいうのは気持ちの問題。 ruby信者にはendがいいんじゃないかと言われるだけ。 慣れれてこういうもんだと思えばなくなる問題。 >>510 インデントで致命的な問題があるわけではないよ。 自分も読むだけならインデントも読みやすいと思うけど。 ただ、自分で書く場合、インデントの自動整形ができないとか、 カットアンドペーストするとき、余計な作業をしないといけないとかは、 作業が増える、これは慣れて解決する問題ではない。 個人的には、ネットでなどで見つけてきたコードサンプルなどをカットアンドペーストして 自分のマシンで動かしてみようとするときに、 他の言語ではいきなりインタラクティブシェルに放り込めば動くこともあるが、 まずはインデントを確認してからなど、めんどうだなと思うこともある。 致命的ではないけどね。作業量の問題。
512 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 14:30:08 ] バグが起こらない限りソースコードなんか読まねーよって言う奴には 向いてないんだろうね。
513 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 15:00:14 ] これからはむしろソースはXMLで、専用エディターを使って見掛けを調整するような言語が求められるのかも これなら表現は {} だろうが字下げだろうがエディターの選択に拠るのであって言語の仕様とは分離できるし
514 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 15:04:22 ] lispの括弧とpythonのインデントは同じ匂いがする やってることは完全に正反対のはずなんだが…
515 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 15:33:49 ] ソースコードが画像っていう言語は見たことあるけど、 ソースコードがXMLって言うのはまだ見たことないなぁ・・・
516 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 15:49:55 ] SQL埋め込んだりHTML埋め込んだりすると 見た目にインデントが混乱するので嫌 ちゃんとしたエディタならどっちも文字列だから プログラム自体のインデントには影響しないんだけど 読むのがきつい そういうときは構造が間違ってるから見直せとか テンプレ使えって話になるんだろうけど
517 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 15:52:27 ] >>515 わかってるとは思うが >>513 の言ってるのは エディタ上では普通のソースと見分けが付かない 保存したときにXMLになってるっていう話だろ そういうのを実現してるのは強いて言えば Excel2007 の VBA とかじゃないのか
518 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 16:39:32 ] 構文木がべた書きされた中間コードとして、だったら、S式でもXMLでも あまり差はなくないか? XMLのほうがむやみに冗長なだけで。 あとはプログラマがプレインテキスト信仰から離れられるか、という ところだろうけど。
519 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 16:46:34 ] S式なんざ一般に受け入れられないでしょ。Lispが受け入れられていないのだから。
520 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 16:55:23 ] 特定のツールがないと編集できない言語なんて絶対流行らないという気がする。 キーワードに非アスキー文字がある言語が絶対に流行らないのと同じように・・w
521 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 17:24:24 ] > 構文木がべた書きされた中間コードとして という部分を見落とされちゃった気がしてしょぼーん
522 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 17:31:12 ] S 式 or Lisp という文字が入った書き込みがあった時の ボットによる定型レスだから気にしないでオケ。
523 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 18:37:17 ] hoge.pyc を直接開くとソースコードが出てきて そのまま編集&保存できるエディタってある?
524 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 02:09:00 ] pycからソースコードって復元できないでしょ多分
525 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 02:16:30 ] >>520 昔のパソコンBASICは処理系依存の中間言語でセーブしてたよ でもけっこう流行ってたと思う
526 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 09:17:27 ] >>525 大抵はアスキーセーブもできたはずだが?
527 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 15:59:54 ] ぶっちゃけ今、プログラマの、IDE エディタと専用エディタの使用比率って どんなもんだろうね?
528 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:15:34 ] >>527 俺、3つの職場渡り歩いたけど、IDEのエディタ使ってるやつ見たことない。
529 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:33:30 ] >>526 大抵はアスキーセーブなんてしないし それにアスキーセーブしなおせるのは「特定のツール」がある環境だよね
530 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:52:30 ] >>529 処理系自体がIDEなんだから関係ないじゃん。
531 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:54:28 ] >>530 だから「絶対流行らない」に対する反論だろ 実際普及してたわけだし
532 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:08:41 ] それしかなかった(一般に入手可能性という意味で)からだろ
533 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:09:17 ] 当時はマシン自体がIDEだったわけだし。
534 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 23:49:51 ] 同様のもので言えば Smalltalk なんかもパソコンバンドルされてれば普及したかもね
535 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:07:36 ] >>534 あると どるふぃん
536 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 01:12:39 ] そもそも Smalltalk が無ければ Mac も Win もパソコンは今の姿ではなかったわけだしね。 つか、パソコンって言葉自体が Smalltalk を OS として動作する Alto や NoteTaker の ためのもの…って話はスルーですか、そうですか。
537 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 01:27:03 ] >>536 うん、スルー^^
538 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:34:26 ] BASICが載ってた頃のはマイコンだしな
539 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 03:26:17 ] あんたら何年前のお話をしていらっしゃるのですか?
540 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 11:07:39 ] 話を戻して、ソースコード寄りの中間言語ってどうよ、という意見についてなのだが、 IDE のプラグインだと IDE 毎につくらにゃいかんので負担が大きいなぁとか考えて いたのだが、テキストフィルタとして実装するのはどうだろう。
541 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 09:52:02 ] >>486 矩形コピペできないエディタは死んでいい >>509 激しく同意 >>523 関係ないけど、io-languageだと逆コンパイルできるよ。 インタラクティブシェルで、メソッドを定義すると、逆コンパイル?して表示してくれる。 自分の書いたのより、良い書き方で返ってきたりしてウケル
542 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 09:56:23 ] >>541 Smalltalkも逆コンパイルしてくれる。 時々、最適化した結果を見せてくれるから参考になる。
543 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 09:57:45 ] >>541 矩形コピペできるエディタを使っていながら その機能を知らないやつ多すぎ。 とりあえずWindows系のエディタなら カーソルを選択位置に持っていって、 alt押しながら選択してみるといいよ。
544 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 16:20:06 ] 「プレーンテキストのようなものは何もないのです。」 Servlet Garden ≫ Unicode and Character Sets (Translation) www.t3.rim.or.jp/~yoko-k-h/java/servlet/2008/01/31/unicode-and-character-sets-translation.html くだらない文字コード問題を解決しようとしただけで、 もうすでにプレーンテキストなんてなくなっているわけだよ。 しかし、その差異はエディタが吸収した。 ごく一部の人間以外は問題なく扱えている。 そこで次の段階は、構造化テキストですよ。 >>520 のような言葉は、10年前にはそうなことも言われていたね、なんてい言われるだろう
545 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 18:37:52 ] GUIコンポーネント単位でコードを書くVBは大流行しました
546 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 02:26:30 ] ていうかC#とかVS無しでの作成とか想定してない感じだし 時代の問題じゃなくて MS vs UNIX 文化圏の違いという気がする
547 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 09:41:07 ] そのUnix文化圏でEclipseがじわじわと勢力を広げつつある件 ・vi系 ・Emacs系 ・Eclipse等 に3分するとして、2:7:1 ぐらい?
548 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 23:56:47 ] まぁしかしこんな不見識なな記事もあるな www.atmarkit.co.jp/fwcr/rensai/freeauthoring06/freeauthoring06_1.html
549 名前:デフォルトの名無しさん [2008/02/09(土) 03:59:36 ] for〜elseで2重ループ抜けはやっぱフラグ使うこれかな。 break時にも書けるけど共通の処理をここで確実にできるからミスがおきにくいし elseを書くことで普通の言語のendを明示できる。 2重ループを抜ける場合じゃなくても else: pass と書けるし。 for i in range(5): a = True for j in range(3): if j == 2: break else: a = False if a: break コード見るのは>>549 で。 それはそうと、selfってelifの書き間違いかと思った。 >>486 >>541 WindIDE無料版使ってるけど、インデントは強制だから絶対間違わないよ。 コピペしても挿入部分については適切にインデントされる。 挿入部分下も、ページの最後まで選択してTABで全部が適切にインデントされる。 コメントは微妙に残るかもしれないが。
550 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 07:44:22 ] こうやるのが素直じゃないの? a = False for i in range(5): for j in range(3): if j == 2: a = True break if a: break そういうテクニカルな else は読みにくくなるだけ。
551 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 08:15:06 ] 内部関数にしてreturnで抜けるのがスマートかな。
552 名前:デフォルトの名無しさん [2008/02/09(土) 09:35:34 ] >>550 a の定義位置が間違ってるよ。 breakの有無の判定は一つのループにつき一度しかできないから。 複数のbreakがあってもフラグのセット忘れに関係なくループを抜けれるから確実で良いと思った けど、まあそうかもしれない。 Basicみたいな、単文ならif、複数ならifb〜endifとかになるやつならbreakだけで短く書く意味があるけど。 でもループが長くなるとどーしても分からなくなっちゃうな・・・ どこまで復帰するべきかが。 しかも深くなると、何段のインデントになってるかすら分からない。 タブならタブコードを表示するエディタでいけるけどなぜか半角スペースにされちゃってるし。 そういう意味ではelse:passは書かないとやばい。 普通の言語なら最初と最後の文字があるからそれを強調してくれれば見やすいけど、 pythonの場合はカーソルのある段全体に色をつけてくれないと範囲が分かりにくいな。
553 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 10:12:37 ] 例外使わない?
554 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:19:44 ] >>553 俺も例外使う。例外ならforループどころか関数の壁を越えてbreakできる。
555 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:23:23 ] ttp://entrian.com/goto/
556 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:55:24 ] まぁさ、例外あるような言語ではgotoいらないかもしれないけど、 Cとかだと普通に使うよ?
557 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:28:31 ] いや,普通には使わないわ(ww
558 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:35:39 ] >>557 そう?ファンクショントレース埋め込むときとか、以下のように エラーの場合、リソース開放して戻るときとか頻繁に使うなぁ。 { A *a = NULL; B *b = NULL; C *c = NULL; int result = E_UNKNOWN; if ((a = A_new()) == NULL) { result = E_MEM; goto END_FUNC; } if ((b = B_new()) == NULL) { ... END_FUNC: if (a !=NULL && result != E_SUCCESS) { A_free(a); } ... }
559 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:58:34 ] まぁスコープ抜けるときにデストラクタが呼ばれる言語だったり、 アスペクト指向言語だったら、こんなgotoはいらないのだけどさ。
560 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:00:10 ] >>559 つーか単にGC付きならそれでいいのでは。
561 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:11:47 ] >>560 ファンクショントレースしこむには、スコープぬけるときにデストラクタ よばれるか、アスペクト指向じゃなければ難しいんじゃない。 アーキテクチャに依存しないように仕込むには。 2007/07/11 10:10:10:[TRACE]FuncA IN (args=...) 2007/07/11 10:10:10:[TRACE]FuncA out (result=0) てな感じに。
562 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:22:19 ] >>561 その程度ならtry:finally:があれば十分じゃん…
563 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:25:54 ] >>562 try:finallyで仕込むのメンドイでしょ。gotoと大して変わらないし。 アスペクト指向が一番楽だけど。
564 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:30:13 ] >>563 try:finally:がgotoと変わらないって… gotoでは関数内で例外が発生した時の振舞いがまるで違うんだけど…
565 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:34:17 ] >>564 いや議論がごっちゃになってるのだけど。ロギングに例外機構を 使用しようとするところもおかしいし、例外の振る舞いとgoto をごっちゃにするのもおかしい。
566 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:37:56 ] >>565 > ロギングに例外機構を > 使用しようとするところもおかしいし、 全然おかしくない。 try:finally:はtry:句から抜ける時を捕まえるという、 まさにトレースにぴったりの機構だろ。 > 例外の振る舞いとgoto > をごっちゃにするのもおかしい。 例外が発生した時にOUTの記録を残せないトレースなんて 役に立たないと思う。
567 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:39:39 ] 元の議論は、gotoが必要な時があるかどうか。 >>558 が提示したケースもgoto無しで十分対応できることが示された以上、 もうその時点で議論の結着はついていると思われ。
568 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:40:28 ] coreutilsとかLinuxのカーネルとか見ると、gotoって便利だなと思わないか?
569 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:46:29 ] >>566 try finallyは例外を捕まえるための機構であって、ファンクション トレースのための機構ではない。 デストラクタでロギングするほうがよっぽどスマート。try finally に依存したロギングよりも。そしてアスペクト指向のほうが デストラクタロギングよりももっとスマートだといっているのだよ。
570 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:46:44 ] >>568 CとPythonでは言語の抽象度がまるで違うんだから、 coreutilsだのLinux kernelだのは参考にならない。 Cでtry:finally:と同等な機構を仕込むのがどれだけ大変かわかるか?
571 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:48:29 ] >>569 > try finallyは例外を捕まえるための機構であって、 いいえ、全然違います。ひょっとしてtry:except:と勘違いしている? > デストラクタでロギングするほうがよっぽどスマート。 デストラクタはオブジェクトの解放をする機構であって、 ロギングのための機構ではない。
572 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:50:24 ] 言語に備わっているものは自由に使えばいいじゃん。 (俺)ルールが決まっていれば混乱することもない。
573 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:52:32 ] 558はせっかくPythonが提供している仕組みを無視して Cの原始的なやり方を押し通そうとしているように見える。
574 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:56:40 ] いや、もともとCの話だったのだけど・・・。まぁPythonのようなクソ言語使ってないけど。
575 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:59:35 ] ならpythonスレに来なきゃいいのにw
576 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:05:22 ] 寂しかったんだろ。 こういう態度じゃ,友達もいないだろう。
577 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:07:46 ] このスレはオフサイドルールについて議論するためのスレであって たまたま1がPythonしか知らなかったのだと思うわけだが。 しかしオフサイドルールの話題ですらないな。
578 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:20:17 ] >>570 >556 名前:デフォルトの名無しさん [sage]: 2008/02/09(土) 13:55:24 >まぁさ、例外あるような言語ではgotoいらないかもしれないけど、 >Cとかだと普通に使うよ? >557 名前:デフォルトの名無しさん [sage]: 2008/02/09(土) 14:28:31 >いや,普通には使わないわ(ww ここから始まった話題なので、 今に限ってはCのgotoの話をしている。pythonは今のトピックにおいて関係なし。 Cは例外ないから>>558 がgotoなしで書けるという話も決着がついてない。 ここで例外使えばいいという指摘自体が的外れ。 まあ実際gotoは無くてもいいが、あると遥かリソース開放とかは便利。 むろんGCとか例外とかがあればそっちのが便利だが。
579 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:43:45 ] どこか適切なスレを教えてやってくれ誰か
580 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:46:28 ] >>578 とりあえず pc11.2ch.net/test/read.cgi/tech/1123726695/ にいけ。
581 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:54:22 ] 書いておいた pc11.2ch.net/test/read.cgi/tech/1123726695/199
582 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 21:10:21 ] まあ結論としてはPythonにもgotoがあってもいいねと。 使いたくなければ使わなければいいんだし
583 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 21:14:03 ] gotoイラネ
584 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 21:14:17 ] だからPythonのスレじゃねーし
585 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 21:35:54 ] selfもなくして欲しい。
586 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 10:08:19 ] いまPLSQLの仕事をしているんだけど、 インデントして見やすいように書くと、 文の終わりが深いインデントで唐突に終わってるんだよね。 Pythonってこんな感じのコードになるのかなーと思った、 Pythonを知らないやつのたわごとでした。
587 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 10:09:56 ] >>586 つ[null;]
588 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 11:30:22 ] インデントをスペース1に変更しる
589 名前:デフォルトの名無しさん [2008/02/23(土) 00:53:36 ] インデントとブレース両方入れるのってそんなにマイナス面が多いことなんだろうか? ジードのブレース拒否の態度とMatz のインデント拒否の態度は両方とも 合理的な根拠が感じられない。
590 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 01:08:11 ] > ジードのブレース拒否の態度 ソースきぼんぬ
591 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 01:48:41 ] 以下のような特殊なエラーがわざわざ入っている。 >>> from __future__ import braces File "<stdin>", line 1 SyntaxError: not a chance python3000の議論が始まったときに、ブレースが入らないことだけは 最初っから完全に決まっていた。そもそもまともに議論・検討しようという態度がない。 PEP3099で、ブレースが入らない理由のところで 何も書かれておらず、「そんなことは明らかだ」 という言い方しかしていない。(議論する気がない
592 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 02:52:25 ] ブロックの記述にインデントを用いることがPythonのレーゾンデートルの一つなんじゃね? いいとか悪いとかじゃない、それを変えてしまったらもはやPythonではない、と。 ぶっちゃけ俺もそう思う。
593 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 04:12:48 ] ブレースの利点(といわれるもの)は視認性と自動整形だけかね?
594 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 05:07:02 ] 今さらブレース入れろと言われても面倒だし どっちでもいいという仕様になるのも生理的に嫌
595 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 06:12:09 ] ブレースで視認性が上がるとは到底思えないのだが
596 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:01:58 ] >595 んだんだ
597 名前:デフォルトの名無しさん [2008/02/23(土) 12:31:10 ] >>595 パーサー実装するのが面倒。 ブレースつけてもどうせみんなインデントするからいいじゃん。
598 名前:デフォルトの名無しさん [2008/02/23(土) 12:48:04 ] ttp://www.rubyist.net/~matz/20080220.html 最後に、「Haskellみたいなブレースの使い方を採用する気ない?」と尋ねたら、 「いろんな文法の変更を試している人がいるから、その中のひとつとして考えてみる」 ということであった。これが実現したら大喜びする人も多いように思うけど (lambdaで複文が使えるようになるし)、それほど乗り気であるようにも見えなかったので 過大な期待は禁物である。
599 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:51:47 ] >>598 > 「いろんな文法の変更を試している人がいるから、その中のひとつとして考えてみる」という ことであった。 日本語訳: ウザい東洋人、あっちいけヨ。
600 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:57:53 ] lambdaで複文使えるようになってうれしがるやつなんて変態だけだろ。 いくつもの分がブレスに所狭しと押し込められたソースなんて汚いだけだよ。 複数の文を書くような場面では、関数定義してオブジェクトにして引き回せばいい。
601 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:24:21 ] Matzはなんで、Guidoが「lambdaで複文が使えるように」していないのはわざと だという事に気づかないんだろうか Matzは「大喜びする人も多い」ならRubyをそういう風に改造するんだろうけど Guidoは最初から制約を利用しようとして言語デザインしてるんだから 自分とは考えが違うと理解しないかな
602 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:27:36 ] >>598 > 「いろんな文法の変更を試している人がいるから、その中のひとつとして考えてみる」という ことであった。 日本語訳: 愚問に答えるのは苦労するぜ
603 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:29:56 ] >終始フレンドリーであったことを報告しておきたい。並んで写真も撮ったしね。 Guidoはおとな
604 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:35:24 ] >>598 > 「いろんな文法の変更を試している人がいるから、その中のひとつとして考えてみる」という ことであった。 日本語訳: その質問、あなたで百万回目ですから。
605 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:01:24 ] GuidoとRubyの間には、同じ言語の創始者としての共感のようなものがあるんだろうな。 俺たちみたいに、匿名掲示板で溜飲を下げている一般ピープルには想像もつかないのだけれど。
606 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:04:56 ] matzから見たGuidoとの関係: 同じ言語の創始者としての共感がある Guidoから見たmatzとの関係: この手のイベントで握手を求めてくる百万人の1人
607 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:05:54 ] >>605 GuidoとMatzの間違いじゃね?
608 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:17:29 ] >>606 禿
609 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:53:20 ] Guido が松本のせいで日本人を嫌いになりませんように…
610 名前:デフォルトの名無しさん [2008/02/23(土) 18:21:18 ] >Guidoから見たmatzとの関係: この手のイベントで握手を求めてくる百万人の1人 ジード、自分からRuby1.9について質問しまくってたようだから、そういうわけでもないでしょ にしても、Matz - Guidoの間でこのスレとおんなじ話題が上ってたって言うのは面白いw
611 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 18:22:13 ] グ・・・Guido
612 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 18:22:14 ] >>610 君にいい言葉を教えてあげよう。 「社交辞令」
613 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 18:24:31 ] >>609 guidoってオランダ人だろ? なら元から(ry
614 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 18:26:04 ] ttp://www.youtube.com/watch?v=oEkJvvGEtB4 これ?
615 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 18:29:05 ] >>612 ヨーロッパ人はそういう社交辞令的な質問が得意だよね。
616 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 18:35:15 ] >>> from __future__ import braces File "<stdin>", line 1 SyntaxError: not a chance
617 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 19:37:48 ] Matz「こんな機能どう!凄いよ!」 Guido「そういうのを試してる人もいるよ」(それは10年前に通り過ぎた場所だよ)
618 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 07:55:37 ] Rubyの人って独善的でいや。
619 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 08:12:31 ] リーダーに独善的でないやつなんていない
620 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 08:16:16 ] 独善的であることを自覚している人と、 無自覚なまま他者を攻撃し続ける人がいるよね。
621 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 09:13:09 ] いいかげんスレ違い
622 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:35:10 ] >>620 は無自覚なまま他者を攻撃し続ける人
623 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 13:37:33 ] >>622 はスレ違いに無自覚なまま他者を攻撃し続ける人
624 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 14:34:06 ] 寛容な終身独裁者だったっけ
625 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 22:45:42 ] まあ lambda で複文云々はさておくとしても 「なんでも機能をとりいれる」ではなく 「ほどよいバランスで適切な要素だけを適切に配置」 っていうのが一番重要なんだよね… perl のワケワカメで不要な暗黙機能満載を体験すれば 誰でも気づきそうなものだが
626 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 00:03:42 ] その辺に関しては Python の開発陣は大丈夫そうだな
627 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 06:25:46 ] まあ lambda で複文云々を言うのならProcの仕様なんとかしろと…
628 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 07:46:15 ] スレ違い止めれ
629 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 15:13:44 ] RubyはごちゃごちゃしててPerlとあんまり変わらん
630 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:00:53 ] そのうちPerlでRubyのコードが動きそうだしな
631 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:27:00 ] Perl よりは Ruby の方が俺はずっと読みやすいけどな… どうも Perl とっつきにくい。
632 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 14:00:29 ] Perlよりマシかもしれないがそんなに大差ない 二者で比較するのでなく他の多くの言語を考慮すれば Rubyも読みにくい方に分類される
633 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 14:07:43 ] ここは off-side rule について議論するスレですよ? ttp://foldoc.org/?off-side+rule
634 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 15:51:13 ] > Rubyも読みにくい方に分類される 釣りにもなってない
635 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 20:14:44 ] 事実を書いているんだ ミクとは違うのだよミクとは
636 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 20:53:03 ] オレもRubyは読みにくいと思う。 スクリプトの中ではPHPが一番読みやすい。
637 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 22:24:48 ] それだとなでしこ最高?
638 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 21:45:57 ] ECMAScript 4 が最強
639 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 21:56:25 ] >>638 でもまともに使える実行環境が無いよね
640 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 22:01:01 ] ActiveECMAScriptやIronECMAScriptなんてのを期待
641 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 01:05:46 ] ECMAScript って、generatorの中に、文字列書いてたり、 var がいるのかいらないのかわからんかったり、()の省略ができるときと できない時が混ざってて気持ち悪かったり、足し算で意味わからないcoerceがおこったり するウンコ的な言語のこと?
642 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 04:48:08 ] >>636 .| | | | | | | | | | || | | .| | | レ | | | | | J || | | ∩___∩ | | | J | | | し || | | | ノ\ ,_ ヽ .| レ | | レ| || J | / ●゛ ● | .J し | | || J | ∪ ( _●_) ミ .| し J| 彡、 |∪| | .J レ / ∩ノ ⊃ ヽ ( \ / _ノ | | \ " / | | \ / ̄ ̄ ̄ /  ̄ ̄ ̄ ̄
643 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 10:03:58 ] ここは off-side rule について議論するスレですよ? ttp://foldoc.org/?off-side+rule ECMAScriptはLLスレか?
644 名前:デフォルトの名無しさん [2008/03/24(月) 09:51:15 ] def hoge(a): a.sort(lambda x,y: x - y) return a このhoge自体をlambdaで定義しようとして hage = lambda a: a.sort(lambda x,y: x - y) としてもsort後のaの値は返せないんですよね hage = lambda a: a.sort(lambda x,y: x - y), return a みたいに複文にすると怒られるし・・・
645 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:03:41 ] 誤爆?
646 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 11:43:53 ] >>644 sortとsortedの違いは判る?
647 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 12:49:23 ] >>646 解決しました。 ありがとうございました。 hage = lambda a: sorted(a, lambda x,y: x - y)
648 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 14:04:06 ] >>644 入門書嫁。
649 名前:デフォルトの名無しさん [2008/03/30(日) 12:23:46 ] age
650 名前:デフォルトの名無しさん [2008/05/22(木) 04:00:43 ] 水干
651 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 17:35:04 ] for i in xrange(3): p i for i in xrange(4): p i それぞれスペースの数が違ってても大丈夫なんですか?
652 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 17:39:04 ] p "それぞれブロックが閉じているので大丈夫です"
653 名前:デフォルトの名無しさん [2008/12/31(水) 11:59:02 ] age
654 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:16:13 ] sage