난 그냥 내 마음에 의심했다. 다음과 같은 서브 루틴 (예를 들어 목록에서 요소를 검색)에는 끝에 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 문의 중요성을 얻을 수 없습니다 (예 : return search_list (l-> next, x)). 누군가가 스택 모델을 사용 하여이 개념을 설명 할 수 있다면 정말 도움이 될 것입니다.
return
는 전혀 명확하지 않다는 것을 이해하십시오 . 실제로, 기능적 언어 (및 스칼라와 같은 일부 혼합 언어) return
에서는 필요하지 않습니다 . 재귀 함수의 값은 마지막 표현의 값입니다. 스칼라에서 쓰지 search_list(l->next, x)
않고 단순히 글을 쓰면 됩니다 return
! 이 return
문장 의 의미 는 명령적인 배경을 가진 프로그래머에게만 분명합니다.
return
입니다.