by
Anonymous Coward
on 2015年10月24日 20時32分
(#2905949)
7.は同じく違和感あった。ループの中の条件分岐でネストが無限に深くなっていくほうがよっぽど悪いと思ってたんだけど。少なくとも誰もが認めるというほど「悪い」とは思えない。構造化原理主義的にはbreakもcontinueも必要ないし実際Pascalには存在しないって話かね? 原文見たら > a rule-making group declared とか書いてるし全然普遍的なルールって気がしないんだけど。
while (i<a.length){ ... if (test(a[i]) then return a[i]; ... }
while ((notFound) && (i<a.length){ ... if (test(a[i])) then notFound=false; ... }
ていうかリンク先の例を見たら等価な書き換えにすらなっていなかった。
while ((notFound) && (i<a.length){ ... if (test(a[i])) { notFound=false; } else { ... } }
大体はやってないけど (スコア:1)
> 6.独自のデータ構造を書く
> 7.ループの半ばでループを抜ける
これって駄目だったんだ?
普通にやってしまってるけど……。
6番のデータ構造を書くっていうのが漠然とし過ぎて、具体的にどんなデータ構造を書いてどのように使ったらどう悪いのかわかんないなぁ。
メソッドを持たないクラスを書いたらそれもデータ構造だと思うけど、それも駄目って事?
構造体だけを言ってるんなら、何故に構造体だけ駄目なのか? ……うーん、わからない。
原文も読んでみたけど、どうも……要約すると
「大体のデータ構造は既に用意されてるからそれ使えや」
Re:大体はやってないけど (スコア:0)
7.は同じく違和感あった。ループの中の条件分岐でネストが無限に深くなっていくほうがよっぽど悪いと思ってたんだけど。少なくとも誰もが認めるというほど「悪い」とは思えない。構造化原理主義的にはbreakもcontinueも必要ないし実際Pascalには存在しないって話かね?
原文見たら
> a rule-making group declared
とか書いてるし全然普遍的なルールって気がしないんだけど。
ていうかリンク先の例を見たら等価な書き換えにすらなっていなかった。
だろ。書き換え例の方でループ内のインデント消してるのもわざとか?
そもそもif文の条件が成り立つとその前後でnotFoundの値が変わるんだから「ループ全体を通して不変条件が成り立って」ないじゃん。
それともこれはwhile文の中で(notFound)とか条件書いておくと、notFoundにfalseを代入した瞬間にループを抜けるような架空の言語を前提にした擬似コードなのか? そんな機能がある言語は(すくなくともこんな手続き型っぽい構文を持つものの中では)聞いたことないんだけど。
Re:大体はやってないけど (スコア:2)
悪い一例として、
否定な名前を使う。