【Python】オフサイドルール 2桁【Haskell】
2 :
デフォルトの名無しさん:2011/07/14(木) 23:44:53.90
> インデントでプログラムの意味が変わる offside rule はいらないですよ。
実際使ってみると気にならないレベルだとわかる
いらんと言う香具師は素人
4 :
デフォルトの名無しさん:2011/07/15(金) 10:08:25.25
うざい中括弧が基本的にいらない言語だよね。<Python,Haskell
いいと思うよ。中括弧見てるとCやJavaの腐ったもんって感じがするもん。
後、オフサイドルール故に、可読性が〜とよくいわれるけど
そのとおりだと思うよ。一部アルゴリズムの本にPythonを採用してる動き
があるのはよく分かる。
単に、気になる・ならないという個人の気分的なレベルの話だったの?
前スレではメリットとデメリットが具体的な形で挙ってたと思うけど
最終的にはその具体的な(デ)メリットをどう判断するかということだから、じゃないの?
スレタイから「制御構造の是非」取れちゃったからなぁ
制御構造ってのは抽象のことであって、
オフサイドルールは具象だから、「是非」はともかく「制御構造の」は当たっていない。
オフサイドルールが貧弱だと、横に長い文ができやすいのが気に入らない。
見辛いコードがすなわち悪い構造のコードだって言い切れるのなら、オフサイドルールにメリットがあると言えるんだけど、
(if文がネストしまくるのは悪いこと、とか)そうでもない場合もあって困る。
pythonのルールはまだいいかもしれんが、haskellのコードはそうでもない、ってのが印象。
インデントの深さ方向もだけど
一つのブロックが何行にも渉って延々と続くのも考え物
途中でインデントの深さが判らなくなってしまう
(特に印刷物でソースが複数ページにまたがる場合)
>>10 ブロック(複文)は、文を順番に並べてまとめたものという抽象構文のレベルのものです。
それを、逐次実行する、というのは意味のレベルです。
それを、字下げで表現する、というのは具象構文のレベルです。
これらをごっちゃにするのは、HTTPとIPをごっちゃにするようなものです。
逐次実行というsemanticsを表現するためのsyntaxがブロックなのです。
「syntaxとsemantics」という初歩も理解してないのですね。
もともと行儀の悪い書き方をしてきた人や
スペースをタブにしてしまうエディタを使ってる人は
オフサイドルールがうっとおしいと思う
オフサイドルールがあるときれいに書こうという気になる
ブロック構文だからといって逐次実行とはかぎらんわな。
並列実行の構文がブロック型をしてる言語だってある。
初歩を理解してないのはどちらですかな?
>>6 ・個人の感想
・事実の積み重ね
意味合いが全然違いますから
>>14 残念ながら、全てを奇麗に書き下せる究極の言語はまだこの世に生まれてないんだ
汚れ仕事にも文句を言わずに付き合ってくれる言語じゃないと信頼関係は生まれないね
GNUスタイルのインデントは嫌い
制御構造の { と } が2桁ずれるんよな
while(expr)
{
statements;
}
statements;
>>16 それで何がしたいの?
客観的事実をもって徹底的にdisりたいの?
>>18-19 コーディングスタイルのスレは別になかったっけ?
>>20 技術者なら常に事実を把握しておきたいだろ
disるとかdisられたとか、個人の感想なんかはどうでもいい話
そんな事に拘って事実が見えなくなったら、俺は引退するわ
事実はそれぞれの文法にある通りでしょ
あとはエディタのサポートとかそういう細々した話
事実について議論することなど何もないと思うが
その文法を種々のプログラムに適用した場合の効果については自明じゃないと思うけど、
議論する事が何も無いと思うなら議論しなくていいんだよ
IDEに自動フォーマットさせたら、こんなルールいらない。
原因と結果を取り違えるタイプの人はプログラム書くのには向いていない
iDE前提では、魅力ない。
>>9 むしろpythonのループには何かしらbegin-end的な物が欲しいとか思うんだよな。。。何か極端過ぎと言うか
(ループされる処理の塊がまとまってると言うより、ぶら下がって見えるのが)
haskellはループ無いからインデントに違和感無かった
有った方が良いとか、無かった方が良いかはどうでも良いけど
いみふ
やっぱいらんかったんやこのスレ...
30 :
デフォルトの名無しさん:2011/09/06(火) 10:28:24.31
あげ
スレタイがキャッチャーじゃないから食いつきが悪いね。
前のスレタイなら初心者でも理解できたし。
プログラムVIP板
キャッチャー?
キャッチョー?
ピッチャーだろ
>>29 今は Henry Kroll III 氏の Anchor のようなものがあり、
どっちのスタイルにも変換できるからイラネだな。
しかしこういった議論が起きるということからブロック構造を構文の
一種として意識して記述させるというのは今となっては不自然なのかもしれないな。
プログラミング言語の構造を、構文でなく記述するってどういうこと?
遅延評価や高階関数や継続を駆使して、制御構造をライブラリで表現できるように
(ifとかwhileとかを、文ではなくて全部関数に)するのが自然ってこと?
桁を意識するのはFORTRANからの伝統。
パンチカードの正当な継承者。
7カラム目に特別な記号を置いたりするのはむしろCOBOLだろ
>>37 そこまで逝ってないが言えば頭大丈夫?ってくらい単純な方法。
今は大人の地蔵でいえないが生きていればどこか日の目を見るかもね。
できるだけ早く病院行け
まあ、元々Pythonのオフサイドルールの是非を問うスレだったからな
今後色んな言語を追加していけばいいと思うぜ
オフサイドルールについて何を話せばいいんだよw
文句言ってる香具師は大抵Python使ってない
食わず嫌い
実際使ってみれば全然問題にならないレベル
かえってソースが綺麗になって嬉しいくらい
IDE使えばどの言語も同じ。
中括弧派だがオフサイドルールのいい点を取り込む仕様を考えた
A()
{
doSomething();
return A;
return B;
}
A(){
doSomething();
return A;
return B; }
下のように記法してなおかつ return; と } の間に目に見えない改行を挟む
これでvimのddで return B; だけ消せる
その代わりvimの%によるカッコの対応付けはくずれるけどねw
え、なんで?
51 :
49:2011/11/27(日) 18:21:13.76