On 2011-08-21 20:02, bearophile wrote:
Nick Sabalausky:
Yuck! I'd really hate that.
Recently I have converted this Python code:
def foo(sol):
global best
if is_solution(sol[-1]):
if best or len(sol)< len(best):
best = list(sol)
else:
for next in alternatives(sol[-1]):
if next not in sol:
foo(sol + [next])
To this innocent-looking D code, do you see the problem?
void foo(Pair[] sol) {
if (isSolution(sol[$-1]))
if (!best.length || sol.length< best.length)
best = sol.dup;
else
foreach (next; alternatives(sol[$-1]))
if (!canFind(sol, next))
foo(sol ~ [next]);
}
There is a situation where I'd like D to require braces:
http://d.puremagic.com/issues/show_bug.cgi?id=4375
Bye,
bearophile
Yes, the else is for the second if-statement, not the first one. That's
why I always use braces when I have nested if-statements, at least for
the outer if-statement.
--
/Jacob Carlborg