2011-01-25 18 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

संबंधित मुद्दे