में अभिव्यक्ति मूल्यांकन पेड़ आज एक परीक्षा में मुझे हास्केल में एक अभिव्यक्ति मूल्यांकन वृक्ष बनाने के लिए कहा गया था।हास्केल
data Expr = Value Integer
| Add Expr Expr
| Sub Expr Expr
| Mul Expr Expr
और यह मूल्यांकन करने के लिए, तो आप सिर्फ एक समारोह में इस तरह के रूप में उपयोग: आमतौर पर जवाब के रूप में सरल रूप में है
data Op = Add
| Sub
| Mul
:
eval :: Expr -> Integer
eval (Value x) = x
eval (Add l r) = eval l + eval r
eval (Sub l r) = eval l - eval r
eval (Mul l r) = eval l * eval r
हालांकि आज, हम एक डेटा प्रकार दिए गए थे
तो मैंने अभिव्यक्ति वृक्ष बनाने के लिए माना कि मैं बस कर सकता हूं:
data Expr = Value Integer
| Op Expr Expr
और उसी eval
फ़ंक्शन का उपयोग करें। हालांकि, मैंने तब से उस समारोह को लिखा है और इसे जीएचसीआई में लोड किया है, लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है। क्या कोई यह समझा सकता है कि यह क्यों काम नहीं करता है?
अहह्ह ठीक है, बहुत बहुत धन्यवाद। अब स्पष्ट रूप से स्पष्ट है, लेकिन कई रचनाकारों को पहले से ही मुझे थोड़ा उलझन में मिला है। –
आपका शिक्षक आपको सोचने के लिए मजबूर कर रहा है (न केवल याद रखें): डी – josejuan