मुझे प्राथमिकता मिली और सहयोगीता यह समझने के लिए एक बड़ी बाधा है कि व्याकरण पहले नज़र में हैकेल कोड को व्यक्त करने का प्रयास कर रहा है।हास्केल प्राथमिकता: लैम्ब्डा और ऑपरेटर
उदाहरण के लिए,
blockyPlain :: Monad m => m t -> m t1 -> m (t, t1)
blockyPlain xs ys = xs >>= \x -> ys >>= \y -> return (x, y)
प्रयोग करके, मैं अंत में, मिला कौन सा रूप में काम करता तो इसका मतलब है
blockyPlain xs ys = xs >>= (\x -> (ys >>= (\y -> return (x, y))))
बजाय
blockyPlain xs ys = xs >>= (\x -> ys) >>= (\y -> return (x, y))
:
*Main> blockyPlain [1,2,3] [4,5,6]
[(1,4),(1,5),(1,6),(2,4),(2,5),(2,6),(3,4),(3,5),(3,6)]
मैं एक ऑपरेटर के रूप में ghci (>> =) के लिए जानकारी प्राप्त कर सकता हूं, (infixl 1 >> =)।
लेकिन इसके लिए कोई जानकारी नहीं है -> क्योंकि यह ऑपरेटर नहीं है।
क्या आप में से कोई भी इस व्याकरण की चीज़ को समझने के लिए कुछ संदर्भ दे सकता है?
[हास्केल रिपोर्ट] (http://www.haskell.org/onlinereport/haskell2010/haskellch3.html#x8-220003) हास्केल सिंटैक्स के लिए एक निश्चित संदर्भ है, हालांकि शायद बीएनएफ व्याकरण आपके प्रश्न के लिए थोड़ा कम स्तर है पूछ ...? –