चुनौती:
एक फ़ंक्शन या प्रोग्राम लिखें जो बूलियन मानों की सूची को स्वीकार करता है और ट्रू के सभी श्रेणियों को लौटाता है।
परीक्षण के मामलों:
f [F] = []
f [T] = [[0,0]]
f [T,T,F,T] = [[0,1],[3,3]]
f [F,T,T,F,F,T,T,T] = [[1,2],[5,7]]
f [F,T,T,F,F,F,T,T,T,T] = [[1,2],[6,9]]
f [T,T,F,F,F,T,T,T,T,T,T,T,T,T,T,F] = [[0,1],[5,14]]
f [F,F,T,T,F,F,F,F,F,F,F,F,T,T,T,T,T,T,T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,T] = [[2,3],[12,19],[33,54],[93,94]]
नियम:
- आप चुन सकते हैं कि इनपुट कैसे एनकोडेड है, उदाहरण के लिए सूची, सरणी, स्ट्रिंग, आदि।
- आउटपुट को लिस्ट-लाइक या लिस्ट-स्ट्रिंग के रूप में एन्कोड किया जाना चाहिए, जैसे एरे, लिस्ट, ट्यूपल्स, मैट्रिसेस, वैक्टर आदि।
- बूलियन मूल्यों को स्थिरांक के रूप में एन्कोड किया जाना चाहिए, लेकिन अन्यथा वांछित स्थिरांक को टी / एफ के किसी भी सरल रूपांतरण की अनुमति है
- EDIT: रनटाइम के दौरान eval या समान IS की अनुमति है।
- यह बताना न भूलें कि प्रोग्राम / फ़ंक्शन को इनपुट कैसे पास किया जाता है और परीक्षण मामलों के लिए उसका इनपुट / आउटपुट दिया जाता है
- वांछित इनपुट प्रारूप में रूपांतरण की गणना नहीं की गई है
- मानक खामियों को अस्वीकार कर दिया जाता है
- यदि आपकी भाषा में ऐसा करने का कोई कार्य है, तो इसकी अनुमति नहीं है
- मैं अपनी अधीनता स्वीकार नहीं करूंगा
- EDIT: आउटपुट स्वरूप लचीला है। यदि कोई सूची या समान प्रिंट नहीं कर रहा है, तो रेंज मानों को एक गैर-संख्यात्मक चरित्र और अलग-अलग श्रेणियों द्वारा अलग किया जाना चाहिए।
स्कोरिंग:
- स्कोर बाइट्स में है, जब तक कि आपकी भाषा के लिए अयोग्य न हो (जैसे कि पीट में कोडेल)
- सबसे कम स्कोर जीतता है
इनपुट और आउटपुट में एक अच्छा लचीलापन है, लेकिन समाधान जहां टी / एफ को उन कार्यों से बदल दिया जाता है जो सभी कार्य बंद हैं।
डिबगिंग:
यदि आप हास्केल में अपना लिखते हैं या इसे हास्केल से बुला सकते हैं, तो निम्नलिखित आपके कार्य / कार्यक्रम की जांच करेगा:
import Test.QuickCheck
tf = cycle [True,False]
gen l = foldl (++) [] $ map (\i -> [tf!!i | x<-[1..i]]) l
putIn (a,b) l = zipWith (||) l [(a <= p) && (p <= b) | p <- [0..length l]]
putAllIn rs len = foldr putIn [False|i<-[1..len]] rs
main = print $ quickCheck (check functionNameGoesHere)