हैलो निम्न कोड एक वर्डफ़ूड प्रोग्राम है। यह आपको उपसर्ग, प्रत्यय, और कुछ अक्षरों से मेल खाने वाले शब्दों की सूची के माध्यम से खोजने की अनुमति देता है। मेरा सवाल है, नीचे सूची का उपयोग करने के बजाय, मैं शब्दों वाली बाहरी टेक्स्ट फ़ाइल का उपयोग करना चाहता हूं और इसे सूची में लोड करना चाहता हूं। मैं यह कार्य कैसे करूं?हास्केल बाहरी txt फ़ाइल को सूची में लोड करें
count :: String -> String -> Int
count _[] = 0
count [] _ = 0
count (x:xs) square
|x `elem` square = 1 + count xs (delete x square)
|otherwise = count xs square
check :: String -> String -> String -> String -> Bool
check prefix suffix word square
| (length strippedWord) == (count strippedWord square) = True
| otherwise = False
where
strippedWord = drop (length prefix) (take ((length word) - (length suffix)) word)
wordfeud :: String -> String -> String -> [String]
wordfeud a b c = test1
where
test =["horse","chair","chairman","bag","house","mouse","dirt","sport"]
test1 = [x| x <- test, a `isPrefixOf` x, b `isSuffixOf` x, check a b x c]
आपके कोड के बारे में दो छोटे संकेत: 1. हास्केल फ़ंक्शन एप्लिकेशन में इंफिक्स ऑपरेटरों की तुलना में एक मजबूत प्राथमिकता है। यही है, 'लम्बाई स्ट्रिपेड वर्ड == गिनती स्ट्रिपेड वर्ड स्क्वायर' जैसी अभिव्यक्ति '(लम्बाई स्ट्रिपेड वर्ड) == (गिनती स्ट्रिपेड वर्ड स्क्वायर) के बराबर है। 2. समारोह में 'चेक' समारोह का परिणाम समानता जांच का मूल्य है। इसलिए, आप समानता जांच द्वारा गार्ड (लंबवत सलाखों के साथ भाग) को प्रतिस्थापित कर सकते हैं। –
आपका मतलब है कि मैं केवल इस लाइन के साथ गार्ड को प्रतिस्थापित कर सकता हूं "लंबाई strippedWord == गिनती छीनने वाला तार वर्ग = सही"? – tutu
सटीक नहीं होने के लिए खेद है मेरा मतलब था कि आप 'प्रीफिक्स प्रत्यय शब्द वर्ग = लंबाई स्ट्रिप किए गए वर्ड == गिनती स्ट्रिपेड वर्ड स्क्वायर' का उपयोग कर सकते हैं। यही है, 'चेक' के आवेदन का नतीजा' == 'के आवेदन का परिणाम है। –