Not considered harmful
Aug. 31st, 2012 02:03 amВообще, я считаю, что выделение break и continue в Си это большая ошибка, вместо этого нужно было сделать правильный return. А именно, return с опциональным аргументом, чего именно мы хотим закончить. И называл бы я эту операцию не return, а finish.
Вместо break:
Вместо continue:
Примитив finish (он же return) наиболее естественно реализуется при помощи исключений, так что можно считать его живущим в соответствующей монадке.
( Read more... )
Вместо break:
Loop: for (i <- 0 until size) { val v = data(i) if (v > maxValue) finish[Loop] v }
Вместо continue:
for (i <- 0 until size) ProcessElement:{ if (data(i) == 0) finish[ProcessElement] ... }
Примитив finish (он же return) наиболее естественно реализуется при помощи исключений, так что можно считать его живущим в соответствующей монадке.
( Read more... )