나는 ocaml을 배우기 시작했으며, 언어에서 재귀의 힘을 정말로 감사하고있다. 그러나 내가 걱정하는 한 가지는 스택 오버플로입니다.함수 언어로 된 프로그램이 스택 오버플로를 일으킬 가능성이 더 높습니까?
ocaml이 함수 호출 용 스택을 사용하는 경우 스택 오버플로가 발생하지 않습니까? 예를 들어, 다음 함수가있는 경우 :
let rec sum x =
if x > 1 then f(x - 1) + x
else x;;
결국 스택 오버플로가 발생해야합니다. C++에서 동일한 작업을 수행했다면 (재귀를 사용하여) 오버플로가 발생합니다.
내 질문에, 함수 언어가 스택 오버플로를 방지하기위한 안전 장치가 내장되어 있습니까? 그렇지 않은 경우, for 루프를 사용하여 절차 스타일로 작성된 위의 합계 알고리즘이 임의의 수를 처리 할 수 있기 때문에 (정수 오버플로를 무시함) 이와 같이 덜 유용하지 않습니까?
안녕하세요! 그것은 사이트의 이름입니다. – kornfridge