2011-11-13 15 views
13

है, तो परीक्षण में कोई चाल या प्रील्यूड फ़ंक्शन है यदि किसी सूची में एक विशिष्ट सबस्ट्रिंग/उपमहाद्वीप है या नहीं?हास्केल: यदि सूची में विशिष्ट "उपन्यास"

xyz :: [a] -> [a] -> Bool 
xyz "hello world" "worl" -> True 
xyz [1,2,3,4,5,6,7,8,1,2,3,4,5] [7,8,1] -> True 

मैं अपने दम पर एक लिखने का प्रयास किया, लेकिन यह एक तुच्छ समस्या है और मैं पहिया बदलने की नहीं करना चाहती।

+7

lmhtfy: http://haskell.org/hoogle/?q=[a]+-%3E+[a]+-%3E+Bool –

+0

क्या यह जानबूझकर है कि पहले मामले में आप 'xyz' जैसे कि इसका प्रकार '[ए] -> [ए] -> बूल 'था और दूसरे मामले में जैसे कि यह [[ए]] -> [ए] -> बूल' था? क्योंकि यह एक ऐसा फ़ंक्शन ढूंढना बहुत कठिन होगा जो दोनों उपयोगों की अनुमति देता है। – sepp2k

+0

@ sepp2k मेरी गलती! ठीक कर दिया। – NaN

उत्तर

28

डेटा से लिस्ट isInfixOf का उपयोग करें।

पैरामीटर आपके द्वारा पूछे जाने वाले कार्यों से दूसरे तरीके हैं --- यह आमतौर पर इस तरह के फ़ंक्शन का उपयोग करने के लिए सबसे अधिक पठनीय है: "worl" `isInfixOf` "hello world" (सत्य लौटाता है)।

संबंधित मुद्दे