0
가의 람다 용어를 열거 보자 :스택 참조/역 참조 기호
fn size(t: &Term) -> uint {
match *t {
Var(_) => 1,
App(ref f, ref x) => 1 + size(&**f) + size(&**x),
Lam(_, ref t) => 1 + size(&**t)
}
}
가 &**
여기 피할 -s 위치 :
#[deriving(Show, Clone, Eq, PartialEq)]
enum Term {
Var(uint),
App(Box<Term>, Box<Term>),
Lam(uint, Box<Term>)
}
은 내가 생각할 수있는 가장 간단한 재귀 함수를 썼다? 나는 이처럼 단순한 경우에 세 명의 연산자가 조금은 있음을 알았다. 또한 돌연변이를 원한다면 재귀 호출은 &mut**x
이되며, 이는 더 많은 입을가집니다.