2009-05-04 9 views
8

में तत्व द्वारा दो सूचियों तत्व को गुणा करें मैं हास्केल में दो सूचियों के तत्वों को दो से दो गुणा कैसे बढ़ा सकता हूं? मूल रूप से यदि मेरे पास [1,2,3] और [2,3,4] है तो मैं [2,6,12] प्राप्त करना चाहता हूं।हास्केल

उत्तर

34
zipWith (*) [1,2,3] [2,3,4] 

एक समारोह जैसे zipWithHoogle है खोजने का एक उपयोगी तरीका। वहां, आप जिस फ़ंक्शन को खोज रहे हैं उसके प्रकार में प्रवेश कर सकते हैं, और यह मानक पुस्तकालयों में मिलान करने वाले कार्यों को खोजने का प्रयास करेगा।

इस मामले में अपने Int एक combiner समारोह (*) का उपयोग कर के एक ही सूची में Int रों की दो सूचियां संयोजित करने के लिए एक समारोह के लिए देख रहा है, तो यह आपकी क्वेरी होगा: (Int -> Int -> Int) -> [Int] -> [Int] -> [Int]। यदि आप तर्कों का क्रम बदलते हैं तो होगल को भी सही funciton मिल जाएगा।

+4

अधिक महत्वपूर्ण बात यह है कि, इस मामले में (वास्तविक प्रकार के ज़िपविथ (ए -> बी -> सी) -> [ए] -> [बी] -> [सी]), होगल आपकी क्वेरी को किसी के साथ एकीकृत करेगा जेनेरिक प्रकार पैरामीटर ... –

+0

ठीक है, वह भी। –