有时当我在编程时,我发现某些特定的控制结构对我来说非常有用,但在我的编程语言中并不直接可用。我认为我最常见的愿望是“分裂”(我不知道实际上该怎么称呼它):
{
foo();
} split_while( condition ) {
bar();
}
此代码的语义foo()
是始终运行,然后检查条件。如果为真,则bar()
运行,我们返回第一个块(因此foo()
再次运行,等等)。感谢reddit 用户 zxqdms 的评论,我了解到 Donald E. Knuth 在他的论文“Structured programming with go to
statements”(参见第 279 页)中写到了这种结构。
您认为哪些替代控制结构是组织计算的有用方式?
我的目标是为自己和其他人提供有关结构化代码的新思维方式,以改进分块和推理。
注意:我不是在问如何概括所有可能的控制结构,无论是通过使用jne
、if
/ goto
、Lisp 宏、延续、单子、组合子、夸克还是其他任何东西。我在问什么专业化对描述代码有用。