プログラミングをしていると、特定の制御構造が非常に役立つことがありますが、プログラミング言語では直接使用できません。私の最も一般的な欲求は「分割中」のようなものだと思います(実際にこれを何と呼ぶかわかりません):
{
foo();
} split_while( condition ) {
bar();
}
このコードのセマンティクスは、foo()
常に実行され、条件がチェックされるというものです。trueの場合、bar()
が実行され、最初のブロックに戻ります(したがって、foo()
再度実行するなど)。redditユーザーzxqdmsによるコメントのおかげで、Donald E. Knuthが彼の論文「Structuredprogrammingwithstatements go to
」(279ページを参照)でこの構造について書いていることを知りました。
計算を整理するのに役立つ代替制御構造は何だと思いますか?
ここでの私の目標は、チャンク化と推論を改善するために、コードの構造化について自分自身と他の人に新しい考え方を与えることです。
注:Lispマクロ、継続、モナド、コンビネータ、クォークなどを使用して、考えられるすべての制御構造を一般化する方法については質問していません。コードを記述するのにどの専門分野が役立つのか尋ねています。jne
if
goto