चुनौती
सबसे लंबे प्रकार के हस्ताक्षर के साथ, अधिकतम 100 बाइट्स पर एक अभिव्यक्ति प्राप्त करें।
नियम
- किसी भी वैधानिक रूप से टाइप की गई भाषा जिसमें अनुमान है, की अनुमति है
- प्रकार गैर-अस्पष्ट होना चाहिए, लेकिन अन्यथा बिना परिभाषित उदाहरणों के प्रकार शामिल हो सकते हैं। उदाहरण के लिए
Num [a]
औरEq [a]
एक निर्धारित उदाहरण के बिना भी अनुमति है - STDIN / STDOUT के साथ एक कार्यक्रम को संकलित करने के लिए आवश्यक न्यूनतम के अलावा कोई आयात नहीं
- अनंत प्रकार की अनुमति नहीं है
- यदि एक उत्तर में एक से अधिक अभिव्यक्ति हैं, तो केवल एक ही स्कोर में योगदान दे सकता है। उदाहरण के लिए, हालांकि रचना का प्रकार हस्ताक्षर
(.) :: (b -> c) -> (a -> b) -> a -> c
20 का स्कोर है, 25 प्रतियों के साथ उत्तर(.)\n
में 20 का स्कोर होगा, न कि 500 - अभिव्यक्ति, अधिकतम, 100 बाइट्स होनी चाहिए
- फ़ंक्शन और किसी भी व्हाट्सएप के नाम को छोड़कर, स्कोर, हस्ताक्षर में वर्णों की संख्या है। उदाहरण के लिए,
f :: (a -> b) -> a -> b
12 का स्कोर होगा - उच्चतम स्कोर जीत!
उदाहरण
यद्यपि अन्य भाषाओं की अनुमति है, निम्नलिखित उदाहरण हास्केल में हैं:
Score: 112
map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map
f :: (a -> b)
-> [[[[[[[[[[[[[[[[[[[[[[[[[a]]]]]]]]]]]]]]]]]]]]]]]]]
-> [[[[[[[[[[[[[[[[[[[[[[[[[b]]]]]]]]]]]]]]]]]]]]]]]]]
Score: 240
(.).(.).(.).(.).(.).(.).(.).(.).(.).(.).(.).(.).(.).(.).(.).(.).(.).(.).(.).(.).(.).(.).(.).(.).(.)
f :: (b->c)->(a->a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16->a17->a18->a19->a20->a21->a22->a23->a24->b)->a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16->a17->a18->a19->a20->a21->a22->a23->a24->c
Score: 313
foldl$foldl$foldl$foldl$foldl$foldl$foldl$foldl$foldl$foldl$foldl$foldl$foldl$foldl$foldl$foldl(.)
f :: (Foldable t, Foldable t1, Foldable t2, Foldable t3, Foldable t4,
Foldable t5, Foldable t6, Foldable t7, Foldable t8, Foldable t9,
Foldable t10, Foldable t11, Foldable t12, Foldable t13,
Foldable t14, Foldable t15) =>
(b -> c)
-> t (t1 (t2 (t3 (t4 (t5 (t6 (t7 (t8 (t9 (t10 (t11 (t12 (t13 (t14 (t15 (b
-> b))))))))))))))))
-> b
-> c
Score: 538
lex.show.foldl1.mapM.traverse.sum.mapM.sum.traverse.(.).mapM.scanl.zipWith3((.traverse).(.traverse))
(Num
(a -> ([[c]] -> t3 [[a1 -> f b]]) -> [[c]] -> t3 [[a1 -> f b]]),
Num
(([[c]] -> t3 [[a1 -> f b]])
-> t1 (t2 ([[c]] -> t3 [[a1 -> f b]]))
-> [[c]]
-> t3 [[a1 -> f b]]),
Show
(t (t1 (t2 ([[c]] -> t3 [[a1 -> f b]])))
-> t1 (t2 ([[c]] -> t3 [[a1 -> f b]]))),
Applicative f, Foldable t,
Foldable ((->) (t1 (t2 ([[c]] -> t3 [[a1 -> f b]])) -> a)),
Foldable
((->) (([[c]] -> t3 [[a1 -> f b]]) -> a -> t3 [a1 -> f b])),
Traversable t1, Traversable t2, Traversable t3, Traversable t4,
Traversable t5,
Traversable ((->) (t1 (t2 ([[c]] -> t3 [[a1 -> f b]])))),
Traversable ((->) ([[c]] -> t3 [[a1 -> f b]]))) =>
[(t5 (t4 a1) -> f (t5 (t4 b))) -> c -> a1 -> f b]
-> [(String, String)]