2010-05-22 13 views
5

मैं निम्न कार्य करने की कोशिश कर रहा हूँ:हास्केल - कैसे प्रकार कास्ट करें?

10 ** length xs * x 

लेकिन मैं मिलता है:

(इंट फ्लोटिंग) `के उपयोग से उत्पन्न होने वाली ** '

+3

ओह, और बस बहुत स्पष्ट होना: सामान्य रूप से, आप हास्केल में "कास्ट" प्रकार नहीं बनाते हैं। प्रकारों के बीच परिवर्तित करने के कई तरीके हैं, लेकिन सामान्य अर्थ में कोई "प्रकार कास्ट" नहीं है। –

उत्तर

8

आप के लिए कोई उदाहरण एक अभिन्न शक्ति को बढ़ाने के लिए ^ का उपयोग कर सकते हैं। यहां फ्लोट में कनवर्ट करने की कोई आवश्यकता नहीं है।

+0

धन्यवाद, यह काम करता प्रतीत होता है :) – MMM

6

@sepp2k's answer के अलावा, यदि आपको किसी भी तरह से वास्तव में किसी अन्य प्रकार के न्यूम से पूर्णांक में कनवर्ट करने की आवश्यकता है, तो fromIntegral का उपयोग करें।

-- # fromIntegral :: (Integral a, Num b) => a -> b 

10 ** fromIntegral (length xs) * x 
संबंधित मुद्दे