-
재귀 호출 비교컴공지식/프로그래밍언어론 2024. 10. 27. 16:43
1번 코드
{with {fac
{with {facX {fun {facY}
{with {fac {fun {x}
{{facY facY} x}}}}
{fun {n}
{if0 n 1
{* n {fac {- n 1}}}}}}}}
{facX facX}}}
{fac 10}}2번 코드
{with {fac {fun {n}
{if0 n 1
{* n {fac {- n 1}}}}}}
{fac 10}}간단하게 말하면,
1번은 고차 함수(High-order function)를 사용해서 복잡한 고차 함수 방식을 사용해서 재귀를 흉내낸 거고, 2번은 은 그냥 직접적인 재귀 호출을 사용한 간단한 방식이다.
다음은 rec을 추가한 문법이다.
{rec {fac {fun {n}
{if0 n 1
{* n {fac {- n 1}}}}}}
fac 10}rec를 사용해서 바로 자기 자신을 재귀 호출할 수 있다.
'컴공지식 > 프로그래밍언어론' 카테고리의 다른 글
Box 데이터 구조 (2) 2024.11.02 재귀로 인해 추가된 코드 부분 (1) 2024.10.27 에타 축약이란? (1) 2024.10.27 재귀 BNF (1) 2024.10.27 조건문 BNF (2) 2024.10.27