मैंने प्रोग्रामिंग प्रबुद्धता की मेरी यात्रा के हिस्से के रूप में केवल हास्केल की दुनिया में अपने पैर की अंगुली को डुबो दिया है (प्रक्रिया से लेकर ओओपी तक अब तक कार्यात्मक तक)।सीखना हास्केल मानचित्र, फ़ोल्ड, लूप और रिकर्सन
मैं ऑनलाइन Haskell Evaluator ऑनलाइन कोशिश कर रहा हूं।
हालांकि अब मैं एक समस्या पर अटक कर रहा हूँ:
एक साधारण समारोह है कि संख्या की एक सरणी के कुल योग देता है बनाएँ।
एक प्रक्रियात्मक मेरे लिए इस भाषा में काफी आसान है (प्रत्यावर्तन का प्रयोग करके) (ग #):
private int sum(ArrayList x, int i)
{
if (!(x.Count < i + 1)) {
int t = 0;
t = x.Item(i);
t = sum(x, i + 1) + t;
return t;
}
}
सभी बहुत ठीक लेकिन मेरी हास्केल में असफल प्रयास इस प्रकार था:
let sum x = x+sum in map sum [1..10]
इस परिणामस्वरूप निम्न त्रुटि (उस उपर्युक्त वेबसाइट से):
Occurs check: cannot construct the infinite type: a = a -> t
कृपया ध्यान रखें कि मैंने पिछले 30 मिनट के लिए केवल हास्केल का उपयोग किया है!
मैं बस एक उत्तर के लिए नहीं देख रहा हूं लेकिन इसके बारे में और अधिक स्पष्टीकरण।
यह व्यापक व्याख्या थी जिसे मैं ढूंढ रहा था। इसे पढ़ने और आगे पढ़ने के बाद अब मैं इसे थोड़ा बेहतर समझता हूं। – Darknight