2011-01-25 6 views
5

람다 미적분 연산자 우선 순위를 이해하는 데 문제가 있습니다. 예를 들어람다 미적분 연산자 우선 순위

다음 코드를

lambda x.x z lambda y.x y 

이 될 것입니다 :

lambda x. (x (z lambda y. x y)) 

또는

lambda x. ((x z) (lambda y. x y)) 

?

훨씬 더 복잡한 예 :

(lambda x.x z) lambda y.w lambda w.w x y z 

경우 괄호 가서 위의 예에서?

람다 응용 프로그램은 연관성이 있지만 람다 값은 이 응용 프로그램보다 우선 순위가 높다는 사실을 알고 있습니까?

답변

13

응용 프로그램은 추상화보다 우선 순위가 높습니다. 함께 응용 프로그램이 연관 남아 및 추상화를 잘 연관 있다는 사실과,이 다음에 이르게 :

lambda x.x z lambda y.x y 

lambda x. ((x z) (lambda y. (x y))) 

(lambda x.x z) lambda y.w lambda w.w x y z 

입니다

(lambda x. (x z)) (lambda y. (w (lambda w. (((w x) y) z)))) 
+0

고마워요. :) 간단했습니다. 모두 다! – Tharasim