Structured recursion

재귀의 일종. 모든 구조적 재귀는 유한한 절차 이내에 종료되는 게 보장된다. (ToDo: 정확한 정의 알아보기. 특히 Well-founded recursion과 차이점)

예시

주어진 자연수가 짝수인지 검사.

def even (n : Nat) : Bool :=
  match n with
  | Nat.zero => true
  | Nat.succ k => not (even k)

이항 더하기 연산:

def plus (n : Nat) (k : Nat) : Nat :=
  match k with
  | Nat.zero => n
  | Nat.succ k' => Nat.succ (plus n k')

See also

  • Generative recursion

2024 © ak