[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/09 21:04 / Filesize : 152 KB / Number-of Response : 743
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Pythonに見られるインデントによる制御構造の是非



1 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 22:44:02 ]
議論よろしく。

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

655 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:15:16 ]
python3の資料見たら相変わらずindent問題が直ってないのな。
後方互換性がなくなると聞いてワクワクしながら見てみたらがっかりだった。

656 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:41:43 ]
インデントに問題なんてあったっけ?

657 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 07:08:19 ]
>>656
インデントレベルのヒューマンエラーでブロックが変わる
結果作業量増加要因になってる。
(この式は本当はどのブロックに束縛されたいのか?等々・・)
{}でも()でもいいんだけどブロックは明示してくれないと困る。
python3ではちゃんと直すものだと思ってただけにがっかり。

658 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 07:20:37 ]
そもそもインデントでブロックを明示する言語なんだからそんなの導入するわけないじゃん

エディタの機能でどうにでもなるしな
emacsだと指定範囲のインデントを1段下げるとか上げるとかいうキーバインドがあって
これで俺は不便を感じたことはない




659 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 07:31:37 ]
レベルが低い。5点。
次どうぞ。

660 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 07:55:06 ]
>>658
emacsでインデントの調整はできるけど、逆に言えば調整だけの支援機能なんだよね。
人のコードもさることながら、自分のコードでもこれってどっちに束縛なのかと悩まざるを得ないことがある。
mergeする時などは最悪だねえ。

まあ手間のかかる体系だよ。

661 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 08:11:23 ]
どっかからコピーしてきたらすぐにインデントの段数を合わせればいいだけじゃないの?

662 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 08:22:33 ]
2tab 4tab混在ソースとかなんの罰ゲームかと思う時があるねw

663 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 12:32:09 ]
エディタの置換機能も満足に使いこなせない奴は何使っても苦労するだろ?

664 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 12:56:43 ]
置換機能で解決する問題じゃないだろ

665 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 01:01:52 ]
普通に解決するし(w

666 名前:デフォルトの名無しさん [2009/02/10(火) 11:28:18 ]
スーパータイヤ人に直してもらえ

667 名前:デフォルトの名無しさん [2009/02/10(火) 11:35:51 ]
while
 if
  処理
 //if
//while

こんな表記すればいいんじゃね?


668 名前:デフォルトの名無しさん [2009/02/10(火) 12:56:40 ]
なるほど
ありがとうございました



669 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 13:37:21 ]
ほ ん と う に ありがとうございました

670 名前:デフォルトの名無しさん [2009/02/10(火) 14:45:36 ]
670

671 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 17:53:10 ]
>>1
否、というか全く、くだらん。
私はProlog。インデントなどすることはない。

672 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 05:40:26 ]
>>657
そういうあなたには、こんなソース

void func(void) {
  if (expr1) {
    ....
    if (expr2) {
      ...
    }} else {
      printf("バーカ\n");
  }
}

673 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 10:04:41 ]
>>672
問題はそういうソースは、エディタやlintみたいなのでインデントを自動的に修正できる。
だが、Pythonはできない(意味がかわってしまうから)

674 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 14:02:52 ]
冗長なほうが優れているというのならXML風だよな

675 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 04:30:58 ]
>>673
開発環境が自動的に修正する機能を持っていたとしても、
そんな機能「ウザ」と言ってOFFにしちゃう奴が大多数。


676 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 07:59:33 ]
そうなん?オートインデントとか使わないのかな・・・(冗談だよ)

スニペットの自動補完みたいなのとか慣れると便利だよ
if 書いてENTERで endおぎなったり、{ ENTER で } 書いてくれたりする奴
多分、emacsとかvimとかは昔からあるんだろうけどさ

677 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:03:40 ]
indentが壊れるのを気にする暇があったら、svnかgitに突っ込んどけ。

678 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 22:54:08 ]
オートインデントは俺マジで切ってるけど
というか勝手にソースに手をつけるようなエディタ機能は全般的に嫌い



679 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 13:05:18 ]
それだと、今のIDEとか切れそうになるぞw

680 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 13:35:08 ]
インデント付けないと読み難い制御構造ということ自体、
問題というか「恥ずかしい」ことなのではないかな。

681 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 16:07:27 ]
あーよくいるよな大学とかに。
まったくインデントしないでCやJavaを書く人。

682 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 06:57:44 ]
俺はcatでCを書くが何か?

683 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 09:27:07 ]
echoで書くよりマシ。

684 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 11:44:22 ]
>>683
今どきのシェルだと、catよりecho(つーか、"")のほうが多機能だぞ。

685 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:06:00 ]
コード投稿しようとしたらサイズ制限に引っかかって泣く泣く先頭のスペース消しました

686 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:31:53 ]
C以来、プログラムは自由構文が当たり前だと思っていたが、
まさかFORTRANみたいなインデントを強制される言語が使われるようになるとは思わなかった。
Pythonに慣れると変な癖が付きそうなので触る気はない。OOPやるならRubyで十分。

687 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:38:04 ]
Haskell、Clean、F#(の#lightモード)あたりもインデントでブロックを
表現するんだけどね(オフサイドルールって奴)

ぶっちゃけPythonのインデント如きにガタガタ言ってる人は認識が古いんで
改めたほうがいいよ


688 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:43:42 ]
COBOLでもやっとけ



689 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:45:18 ]
関数型のかの字も知らずに出てくるのはFORTRANやCOBOLか
老害って哀れだね

690 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:50:24 ]
numpy/scipyでblasには大変世話になってるので、
Fortranを馬鹿にすんな

691 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 02:01:55 ]
FORTRANやCOBOLの桁強制とPythonやHaskellのインデントはちと性質が違うと思うなぁ

692 名前:デフォルトの名無しさん [2009/03/18(水) 02:56:43 ]
インデントは強制されてもいいけど、尻切れトンボみたいにインデントがついた形のまま終わるのがとにかく嫌いだ。
コメントで}とかendとか書いておけばいいことだけど、どうせ強制するならインデントの終わりも
きちんと書かないといけないように強制するなら許せる。
とにかくソースが美しくないから使いたくないし見たくない。

693 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 03:18:35 ]
>>692 あー俺逆。馬鹿みたいにendendendendendendendendって書くのだめ。
Lispで超カッコ作った人の気持ちが半分だけわかるというか。
まあendないとパンツ履いてないような心もとなさがあるのもわかるけどね。

694 名前:デフォルトの名無しさん [2009/03/18(水) 11:04:40 ]
オフサイドルールは、数学の記法から ISWIM で取り入れられたもので、
>>691 の言う通り COBOL や Fortran とは別物。
てかひさしぶりにこのスレが伸びたのを見た気がする。

695 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 11:14:04 ]
>>687
それの中で一番メジャーなのPythonなのに、Pythonごときでっていいかたわないかとw

696 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 11:15:38 ]
YAMLはオフサイドルールでブロックを表現するんだが
endマンセーでオフサイドルールに我慢できないという
RubyユーザはYAMLを使わないのだろうか


697 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 11:16:26 ]
>>695
Python「のインデント」如き
とPython「如き」では日本語として意味が違うよ

698 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 11:37:12 ]
RubyだとYAMLにするよりも直接書いてしまうほうが多いような気もする。



699 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 12:54:55 ]
それはRubyのリテラル表記で書くってこと?
ヤメテクレー

700 名前:デフォルトの名無しさん [2009/03/18(水) 13:19:39 ]
読む分には是、書く場合は非


701 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 15:17:54 ]
YAML は一見すると簡単そうなのに構文規則が複雑すぎる。
一刻も早く滅んでほしい。



702 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 16:07:21 ]
生きのこるのはJSONか?

703 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 18:19:39 ]
JRubyです

704 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 04:25:09 ]
>692-693
俺はC系から入ってLispに行ってからPython、Rubyと覚えたからどっちの気持ちも解るw
C→Lispの時は驚いたよ。「括弧は最後の行に纏めるのが良いスタイル」なんだもん。
だが慣れてしまうとRubyのendendendendに辟易。
…でも結局、そのendendendendにも慣れ始めている俺が居る。

705 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 07:10:03 ]
>>696
つ、つられてやるぞ!
元々XMLはRubyにもまして、end臭くて、冗長すぎるからああなったという経緯がある

>>701
そうか?HashとArrayしかないと考えたら全然難しくないよ

706 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 07:32:34 ]
妙なエスケープが多いってことじゃね?

707 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 10:33:19 ]
スルー推奨

708 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 19:24:41 ]
>>704
692だけど、確かに今のLISPのソースはカッコを最後にまとめてるね。
大昔LISPを勉強したとき、これでえらく苦労したのを覚えてる。
当時はソースを紙に打ち出して赤ペンでカッコの対応をチェックしてた時代で、
目視でカッコの対応をチェックするのはとても大変だった。
今はエディタでカッコ対応チェックしてくれるから楽だけどね。
PythonをRubyの親戚と見ると違和感あるけど、LISPに似てると思って見ればアレルギーも少しはおさまるのかな。
でも、Cで関数の最後に}が並んでたらやっぱり嫌だな。



709 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 19:57:55 ]
Lispのコードを読むときはカッコなんて見ない(特に閉じカッコは)
インデントだけ見る
EmacsなしでLispのコードを書く気はしない
かな

そういう意味ではオフサイドルールはそれなりに合理的だ
見ないものは最初から無いし書く必要が無い
高機能エディタのサポート無しでも書くのに困らない
逆に自動整形が効かない弱みがあるが

まあLispの場合は全てがS式であることが言語の力だから、あれは仕方が無い

710 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 00:08:20 ]
Lisp系はある意味清々しいよな
演算子の優先順位も、構文解析の結合度も、全て自分で書くんだから
人間がパーザやってる感じがするが、それ故に優先順位の間違いは無い

711 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 14:49:41 ]
スルーパス出すために
pass文があるんですね

712 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 14:51:54 ]
>>705
hash と array しかないんだったら JSON で充分

713 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 07:08:09 ]
結局pythonのコードはインデント狂わすウィルス出てきたら終りだね
空白だと一見気付かないから
なぜか上手く動かない
で対策も遅れる


714 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 07:29:42 ]
空白文字部分を表示するエディタ使ってますが何か?

715 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 07:38:55 ]
じゃあインデント狂わすウィルスが出てくるまでPython最強だね。

716 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 07:54:55 ]
それなら、かっこ、コンマ、改行とかを狂わすウィルス作る方が効果的だろ

717 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 14:52:52 ]
知らぬ間に意味が変わってるのがいいんじゃないか

718 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 20:04:00 ]
そういうバグが一番たちが悪い。自分で間違ってるはずがないと思い込んでるところが一番発見しにくいからね。



719 名前:デフォルトの名無しさん [2009/07/27(月) 11:51:10 ]
メソッド内でself強制なのはわかるが、引数にselfは要らない

720 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 12:20:53 ]
スレタイ

721 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 16:17:40 ]
ただ、変に書きすぎると右にずれてきて見辛くなる

722 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 16:45:34 ]

そういうときはモジュールか関数に吐き出す時期

723 名前:デフォルトの名無しさん [2009/08/05(水) 14:18:13 ]
改行抜けただけで崩壊w

724 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 17:25:51 ]
その危うさが楽しいw

725 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 20:14:03 ]
Lispは括弧1個間違えると読み込み終了時に初めてエラーだとわかる。
最初に出てくるエラーはS式として括弧が足りない、多いというもの。
まず括弧の数を合わせないと構文が正しいかのチェックすらできない。
つまり修正に2工程掛かる。

Cはセミコロンが抜けたらその付近で構文エラーになり止まる。
これは文と式を分けている効果であり、良く考えて作られていると言える。

Pythonも文と式に分かれている以上、ある範囲内で何かおかしい、
ぐらいは判るんじゃないかと。

726 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 20:16:48 ]
Lispには及ばないが、むしろC言語のセミコロン抜けは解りにくい部類
セミコロン抜けは抜けた行じゃなくて、次の行のエラーになるからね

727 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 20:19:31 ]
次の行というか、文の終端記号ごとだよ。

728 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 01:19:49 ]
HTMLから脈々と続くネットデファクトとも言えるデータ形式で
複数スペースを解釈しないんだから、pythonは不幸なんじゃないか。
python説明するWebページ作るのって苦労しない?



729 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 01:23:00 ]


730 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 01:25:17 ]
python.rdy.jp/

731 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 06:42:00 ]
>728
2chのPythonスレでは&nbsp;や全角スペース、専ブラのレス参照を活用してることが多いね。
俺はスペース2つ→&nbsp;で置換してから投稿することにしてる。

732 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 12:16:45 ]
ネットデファクト(笑)

PRE要素使えよ。

733 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 22:05:24 ]
インデントのせいで2chにソース貼りにくいから、
宿題厨が沸かないのがいいな。

734 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 23:04:09 ]
>>732
>>732
>>732


735 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:59:59 ]
Web 頁作る件なら PRE でいいだろうし、python に限った話でもない
だだブログで記事を編集しなおしたら勝手に行頭スペースが詰められて焦ったことがある

736 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 05:22:51 ]
掲示板とかでタグ認識しないところは<PRE>じゃどうしようもないんだけど…

737 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 12:03:11 ]
だけど何

738 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 12:47:14 ]
だからpython世界では、宿題のコードください(^q^)はいあげます(^p^)みたいなやりとりはNGってこった。

必要な情報だけ書けば問題ないだろ。



739 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 14:49:34 ]
>737
どうしようもないんだけど、そういう場合にもPREって言うのか?と

740 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 18:10:00 ]
んなことでいちいち思考停止してたら、AA職人の足下にも及ばねぇだろ。

741 名前:デフォルトの名無しさん mailto:な [2009/09/19(土) 00:23:27 ]
>>738
ヒット


742 名前:デフォルトの名無しさん mailto:sage [2009/10/17(土) 15:54:55 ]
というか、self強制の件については我らが偉大なるGuidoパパ自ら回答してくれているので、まずこれを読め。
coreblog.org/ats/translation-of-why-explicit-self-has-to-stay

foo = C()
のとき、
foo.meth(arg) == C.meth(foo, arg)

である。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<152KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef