私は自分の心に疑問を抱いていました。次のサブルーチン(リスト内の要素を検索するなど)の最後にはreturnステートメントがあります。
list *search_list(list *l, item_type x) {
if (l == NULL) return(NULL);
if (l->item == x)
return(l);
else
return( search_list(l->next, x) );
}
最後にreturnステートメントの意味がわかりません(つまり、research search_list(l-> next、x))。誰もがスタックモデルを使用してこの概念を説明できれば、本当に役立ちます。
return
が行われるのかはまったく明らかではないことに注意してください。実際、関数型言語(およびScalaのような混合言語)return
では必要ありません。再帰関数の値は、その最後の式の値です。Scalaで作業していsearch_list(l->next, x)
なければ、書く必要return
はありません。return
ステートメントの意味は、命令的な背景を持つプログラマーにのみ明らかです。
return
機能です。