gps1 :: Int -> Float -> Float -- testing 4 combinations of argument values -- pruning with 0/5 rules -- looking through 1 candidates of size 1 -- looking through 1 candidates of size 2 -- looking through 1 candidates of size 3 -- looking through 2 candidates of size 4 -- tested 4 candidates gps1 x y = fromIntegral x + y gps2 :: Int -> Maybe [Char] -- testing 6 combinations of argument values -- pruning with 9/17 rules -- looking through 1 candidates of size 1 -- looking through 2 candidates of size 2 -- looking through 3 candidates of size 3 -- looking through 2 candidates of size 4 -- looking through 2 candidates of size 5 -- looking through 0 candidates of size 6 -- looking through 32 candidates of size 7 -- looking through 32 candidates of size 8 -- looking through 48 candidates of size 9 -- looking through 32 candidates of size 10 -- looking through 16 candidates of size 11 -- looking through 512 candidates of size 12 -- looking through 1408 candidates of size 13 -- tested 1171 candidates gps2 x = if 2000 <= x then Just "large" else if x < 1000 then Just "small" else Nothing gps3 :: Int -> Int -> Int -> [Int] -- testing 2 combinations of argument values -- pruning with 11/33 rules -- looking through 0 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 0 candidates of size 3 -- looking through 64 candidates of size 4 -- looking through 0 candidates of size 5 -- looking through 1248 candidates of size 6 -- looking through 0 candidates of size 7 -- looking through 18672 candidates of size 8 -- tested 12358 candidates gps3 x y z = enumFromThenTo x (x + z) (y - 1) gps3 :: Int -> Int -> Int -> [Int] -- testing 2 combinations of argument values -- pruning with 6/18 rules -- looking through 1 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 3 candidates of size 3 -- looking through 0 candidates of size 4 -- looking through 15 candidates of size 5 -- looking through 0 candidates of size 6 -- looking through 81 candidates of size 7 -- looking through 36 candidates of size 8 -- tested 136 candidates cannot conjure gps4 :: [Char] -> [Char] -> [Char] -> Bool -- testing 9 combinations of argument values -- pruning with 11/15 rules -- looking through 0 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 0 candidates of size 3 -- looking through 0 candidates of size 4 -- looking through 6 candidates of size 5 -- looking through 0 candidates of size 6 -- looking through 0 candidates of size 7 -- looking through 0 candidates of size 8 -- looking through 102 candidates of size 9 -- looking through 30 candidates of size 10 -- looking through 15 candidates of size 11 -- tested 141 candidates gps4 cs ds es = length cs < length ds && length ds < length es gps5 :: [Char] -> [Char] -- testing 5 combinations of argument values -- pruning with 2/3 rules -- looking through 2 candidates of size 1 -- looking through 1 candidates of size 2 -- looking through 2 candidates of size 3 -- looking through 6 candidates of size 4 -- looking through 4 candidates of size 5 -- looking through 13 candidates of size 6 -- tested 28 candidates cannot conjure gps6 :: Int -> Int -- testing 9 combinations of argument values -- pruning with 16/18 rules -- looking through 4 candidates of size 1 -- looking through 2 candidates of size 2 -- looking through 14 candidates of size 3 -- looking through 14 candidates of size 4 -- looking through 186 candidates of size 5 -- looking through 165 candidates of size 6 -- tested 385 candidates cannot conjure gps7 :: [Char] -> ([Char],Int) -- testing 4 combinations of argument values -- pruning with 5/10 rules -- looking through 0 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 0 candidates of size 3 -- looking through 1 candidates of size 4 -- looking through 2 candidates of size 5 -- looking through 7 candidates of size 6 -- looking through 16 candidates of size 7 -- looking through 39 candidates of size 8 -- looking through 88 candidates of size 9 -- looking through 201 candidates of size 10 -- looking through 442 candidates of size 11 -- tested 546 candidates gps7 cs = (init (unlines (words cs)),length (filter (not . isSpace) cs)) gps8 :: [Char] -> [Char] -> [(Int,Char,Char)] -- testing 3 combinations of argument values -- pruning with 0/0 rules -- looking through 0 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 0 candidates of size 3 -- looking through 0 candidates of size 4 -- tested 0 candidates cannot conjure gps9 :: Int -> [Int] -- testing 3 combinations of argument values -- pruning with 13/14 rules -- looking through 0 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 4 candidates of size 3 -- looking through 4 candidates of size 4 -- looking through 10 candidates of size 5 -- looking through 21 candidates of size 6 -- looking through 30 candidates of size 7 -- looking through 77 candidates of size 8 -- looking through 134 candidates of size 9 -- looking through 245 candidates of size 10 -- tested 306 candidates gps9 x = filter even (filter (x >) (map sq [1..x])) wallisNext :: Ratio Integer -> Ratio Integer -- testing 6 combinations of argument values -- pruning with 37/64 rules -- looking through 1 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 3 candidates of size 3 -- looking through 15 candidates of size 4 -- looking through 4 candidates of size 5 -- looking through 86 candidates of size 6 -- looking through 5 candidates of size 7 -- looking through 537 candidates of size 8 -- tested 588 candidates wallisNext (x % y) = (y + 1) % (x + 1) wallisNext :: Ratio Integer -> Ratio Integer -- testing 6 combinations of argument values -- pruning with 15/26 rules -- looking through 1 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 4 candidates of size 3 -- looking through 16 candidates of size 4 -- looking through 3 candidates of size 5 -- looking through 71 candidates of size 6 -- looking through 5 candidates of size 7 -- looking through 393 candidates of size 8 -- tested 451 candidates wallisNext (x % y) = (y + 1) % (x + 1) gps10 :: Int -> Ratio Integer -- testing 6 combinations of argument values -- pruning with 3/4 rules -- looking through 0 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 3 candidates of size 3 -- looking through 3 candidates of size 4 -- looking through 2 candidates of size 5 -- looking through 5 candidates of size 6 -- looking through 8 candidates of size 7 -- looking through 13 candidates of size 8 -- tested 33 candidates gps10 x = product (take x (iterate wallisNext (2 % 3))) gps11 :: [[Char]] -> [Int] -- testing 4 combinations of argument values -- pruning with 1/1 rules -- looking through 0 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 1 candidates of size 3 -- looking through 1 candidates of size 4 -- tested 2 candidates gps11 css = reverse (map length css) gps11 :: [[Char]] -> [Int] -- testing 4 combinations of argument values -- pruning with 4/4 rules -- looking through 1 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 0 candidates of size 3 -- looking through 0 candidates of size 4 -- looking through 1 candidates of size 5 -- looking through 2 candidates of size 6 -- looking through 0 candidates of size 7 -- looking through 2 candidates of size 8 -- tested 5 candidates gps11 [] = [] gps11 (cs:css) = gps11 css ++ [length cs] gps12 :: [Int] -> Int -- testing 6 combinations of argument values -- pruning with 13/27 rules -- looking through 2 candidates of size 1 -- looking through 5 candidates of size 2 -- looking through 2 candidates of size 3 -- looking through 9 candidates of size 4 -- looking through 22 candidates of size 5 -- looking through 41 candidates of size 6 -- looking through 125 candidates of size 7 -- looking through 262 candidates of size 8 -- looking through 816 candidates of size 9 -- looking through 1996 candidates of size 10 -- looking through 5925 candidates of size 11 -- tested 6320 candidates gps12 xs = (length xs - fromJust (findIndex (0 ==) (reverse xs))) - 1 gps13 :: [Ratio Integer] -> Ratio Integer -- testing 3 combinations of argument values -- pruning with 4/8 rules -- looking through 1 candidates of size 1 -- looking through 1 candidates of size 2 -- looking through 2 candidates of size 3 -- looking through 10 candidates of size 4 -- looking through 13 candidates of size 5 -- looking through 51 candidates of size 6 -- looking through 103 candidates of size 7 -- looking through 365 candidates of size 8 -- tested 267 candidates gps13 qs = foldr (+) 0 qs / fromIntegral (length qs) odd :: Int -> Bool -- testing 6 combinations of argument values -- pruning with 12/13 rules -- looking through 0 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 4 candidates of size 3 -- looking through 3 candidates of size 4 -- looking through 39 candidates of size 5 -- tested 20 candidates odd x = 0 /= x `mod` 2 gps14 :: [Int] -> Int -- testing 3 combinations of argument values -- pruning with 1/1 rules -- looking through 0 candidates of size 1 -- looking through 1 candidates of size 2 -- looking through 0 candidates of size 3 -- looking through 1 candidates of size 4 -- tested 2 candidates gps14 xs = length (filter odd xs) gps14 :: [Int] -> Int -- testing 3 combinations of argument values -- pruning with 39/58 rules -- looking through 3 candidates of size 1 -- looking through 9 candidates of size 2 -- looking through 0 candidates of size 3 -- looking through 27 candidates of size 4 -- looking through 30 candidates of size 5 -- looking through 258 candidates of size 6 -- looking through 474 candidates of size 7 -- tested 378 candidates gps14 [] = 0 gps14 (x:xs) = x + gps14 xs `mod` 2 gps15 :: [Int] -> [Int] -> Bool -- testing 5 combinations of argument values -- pruning with 3/7 rules -- looking through 0 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 1 candidates of size 3 -- looking through 4 candidates of size 4 -- tested 3 candidates gps15 xs ys = xs == reverse ys gps16 :: [Char] -> [Char] -> Bool -- testing 6 combinations of argument values -- pruning with 3/3 rules -- looking through 0 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 2 candidates of size 3 -- looking through 6 candidates of size 4 -- looking through 2 candidates of size 5 -- tested 9 candidates gps16 cs ds = sort cs `isSubsequenceOf` sort ds gps17 :: Int -> Int -- testing 4 combinations of argument values -- pruning with 27/65 rules -- looking through 3 candidates of size 1 -- looking through 3 candidates of size 2 -- looking through 7 candidates of size 3 -- looking through 8 candidates of size 4 -- looking through 28 candidates of size 5 -- looking through 35 candidates of size 6 -- looking through 179 candidates of size 7 -- looking through 217 candidates of size 8 -- looking through 1196 candidates of size 9 -- tested 492 candidates gps17 0 = 0 gps17 x = gps17 (x - 1) + x * x gps18 :: [Int] -> [Int] -> [Int] -- testing 3 combinations of argument values -- pruning with 2/6 rules -- looking through 3 candidates of size 1 -- looking through 8 candidates of size 2 -- looking through 11 candidates of size 3 -- looking through 23 candidates of size 4 -- looking through 86 candidates of size 5 -- looking through 84 candidates of size 6 -- looking through 354 candidates of size 7 -- looking through 353 candidates of size 8 -- looking through 1528 candidates of size 9 -- tested 1409 candidates gps18 [] xs = xs gps18 (x:xs) [] = xs gps18 (x:xs) (y:ys) = x + y:gps18 xs ys gps18 :: [Int] -> [Int] -> [Int] -- testing 3 combinations of argument values -- pruning with 2/7 rules -- looking through 2 candidates of size 1 -- looking through 2 candidates of size 2 -- looking through 1 candidates of size 3 -- looking through 10 candidates of size 4 -- tested 13 candidates gps18 xs ys = zipWith (+) xs ys gps19 :: Int -> [Char] -> [Char] -- testing 2 combinations of argument values -- pruning with 0/0 rules -- looking through 1 candidates of size 1 -- looking through 0 candidates of size 2 -- tested 1 candidates cannot conjure isVowel :: Char -> Bool -- testing 12 combinations of argument values -- pruning with 0/0 rules -- looking through 2 candidates of size 1 -- looking through 1 candidates of size 2 -- looking through 1 candidates of size 3 -- looking through 2 candidates of size 4 -- looking through 2 candidates of size 5 -- looking through 3 candidates of size 6 -- looking through 4 candidates of size 7 -- looking through 4 candidates of size 8 -- looking through 4 candidates of size 9 -- looking through 5 candidates of size 10 -- looking through 5 candidates of size 11 -- looking through 5 candidates of size 12 -- looking through 5 candidates of size 13 -- looking through 4 candidates of size 14 -- looking through 4 candidates of size 15 -- looking through 4 candidates of size 16 -- looking through 3 candidates of size 17 -- looking through 2 candidates of size 18 -- looking through 2 candidates of size 19 -- looking through 1 candidates of size 20 -- looking through 1 candidates of size 21 -- looking through 1 candidates of size 22 -- tested 65 candidates isVowel 'a' = True isVowel 'e' = True isVowel 'i' = True isVowel 'o' = True isVowel 'u' = True isVowel 'y' = True isVowel c = False pig1 :: [Char] -> [Char] -- pruning with 5/5 rules -- looking through 2 candidates of size 1 -- looking through 1 candidates of size 2 -- looking through 4 candidates of size 3 -- looking through 8 candidates of size 4 -- looking through 13 candidates of size 5 -- looking through 28 candidates of size 6 -- looking through 46 candidates of size 7 -- looking through 126 candidates of size 8 -- looking through 200 candidates of size 9 -- looking through 631 candidates of size 10 -- looking through 1068 candidates of size 11 -- looking through 3495 candidates of size 12 -- looking through 6381 candidates of size 13 -- looking through 20409 candidates of size 14 -- tested 27895 candidates pig1 "" = "ay" pig1 (c:cs) = if isVowel c then (c:cs) ++ "ay" else cs ++ (c:"ay") gps20c :: [Char] -> [Char] -- pruning with 1/1 rules -- looking through 1 candidates of size 1 -- looking through 1 candidates of size 2 -- looking through 2 candidates of size 3 -- looking through 3 candidates of size 4 -- looking through 5 candidates of size 5 -- tested 12 candidates gps20c cs = unwords (map pig1 (words cs)) gps21 :: [Int] -> [Int] -- testing 4 combinations of argument values -- pruning with 4/4 rules -- looking through 2 candidates of size 1 -- looking through 1 candidates of size 2 -- looking through 2 candidates of size 3 -- looking through 6 candidates of size 4 -- looking through 4 candidates of size 5 -- looking through 13 candidates of size 6 -- looking through 8 candidates of size 7 -- looking through 30 candidates of size 8 -- looking through 24 candidates of size 9 -- looking through 65 candidates of size 10 -- tested 92 candidates gps21 [] = [] gps21 (x:xs) = (if x < 0 then 0 else x):gps21 xs gps22 :: [Char] -> Int -- pruning with 5/9 rules -- looking through 1 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 1 candidates of size 3 -- looking through 0 candidates of size 4 -- looking through 0 candidates of size 5 -- looking through 3 candidates of size 6 -- tested 4 candidates gps22 "" = 0 gps22 (c:cs) = gps22 cs + scrabble1 c gps23 :: [Char] -> ([(Int,Int)],Int,Double) -- pruning with 0/0 rules -- looking through 0 candidates of size 1 -- looking through 0 candidates of size 2 -- tested 0 candidates cannot conjure gps24 :: [Char] -> Char -- testing 4 combinations of argument values -- pruning with 15/19 rules -- looking through 1 candidates of size 1 -- looking through 2 candidates of size 2 -- looking through 3 candidates of size 3 -- looking through 2 candidates of size 4 -- looking through 8 candidates of size 5 -- looking through 13 candidates of size 6 -- looking through 30 candidates of size 7 -- looking through 75 candidates of size 8 -- looking through 195 candidates of size 9 -- looking through 474 candidates of size 10 -- tested 457 candidates gps24 cs = chr (ord ' ' + sum (map ord cs) `mod` 64) gps25 :: Int -> [Int] -- testing 4 combinations of argument values -- pruning with 0/0 rules -- looking through 0 candidates of size 1 -- tested 0 candidates cannot conjure gps26 :: Int -> Int -> Int -> Int -> Int -> Char -- testing 5 combinations of argument values -- pruning with 4/4 rules -- looking through 5 candidates of size 1 -- looking through 0 candidates of size 2 -- tested 5 candidates cannot conjure gps27 :: Int -> Int -> Int -> Int -- testing 3 combinations of argument values -- pruning with 14/18 rules -- looking through 3 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 0 candidates of size 3 -- looking through 0 candidates of size 4 -- looking through 0 candidates of size 5 -- looking through 36 candidates of size 6 -- looking through 0 candidates of size 7 -- looking through 0 candidates of size 8 -- looking through 0 candidates of size 9 -- looking through 90 candidates of size 10 -- looking through 2592 candidates of size 11 -- tested 1489 candidates gps27 x y z = if x < y then if y < z then y else z else x gps27b :: Int -> Int -> Int -> Int -- testing 3 combinations of argument values -- pruning with 20/30 rules -- looking through 3 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 6 candidates of size 3 -- looking through 0 candidates of size 4 -- looking through 12 candidates of size 5 -- tested 15 candidates gps27b x y z = min z (max x y) gps28 :: Int -> Int -> Int -> Int -> Int -- testing 5 combinations of argument values -- pruning with 6/10 rules -- looking through 4 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 6 candidates of size 3 -- looking through 0 candidates of size 4 -- looking through 12 candidates of size 5 -- looking through 0 candidates of size 6 -- looking through 36 candidates of size 7 -- tested 25 candidates gps28 x y z x' = x `min` (y `min` (z `min` x')) gps29 :: [Char] -> Int -- pruning with 7/11 rules -- looking through 2 candidates of size 1 -- looking through 2 candidates of size 2 -- looking through 0 candidates of size 3 -- looking through 0 candidates of size 4 -- looking through 2 candidates of size 5 -- looking through 6 candidates of size 6 -- looking through 10 candidates of size 7 -- looking through 10 candidates of size 8 -- looking through 24 candidates of size 9 -- tested 38 candidates gps29 "" = 0 gps29 (c:cs) = gps29 cs + (if isVowel c then 1 else 0)