let sum3 a b c = a + b + clet issqsum a b c = (a*a + b*b == c*c)let ismin arg list = (minimum list) == arglet isadigit a = (a `elem` ['0'..'9'])let digitX a = if isadigit a then 'X' else alet nondigits list = [x | x <- list, not(x `elem` ['0'..'9']) ]let digitsX list = [x | x <- list, if (x `elem` ['0'..'9']) then x <- 'X']let digitsX xs = [if (x `elem` ['0'..'9']) then 'X' else x | x <- xs]let picknth n xs = head (take 1 (drop (n-1) xs))let cpos c xs = sum [1 | x <- xs, x <= c]let isupper c = c `elem` ['A'..'Z']let isalnum c = c `elem` (['a'..'z'] ++ ['A'..'Z'])let lowr x = (picknth (cpos x (['a'..'z']) + 13) (['a'..'z'] ++ ['a'..'z']))let uppr x = (picknth (cpos x (['A'..'Z']) + 13) (['A'..'Z'] ++ ['A'..'Z']))let cstr str = [if not (isalnum x) then x else if isupper x then uppr x else lowr x | x <- str]let tas xsa xsb xsc = [(a,b,c) | a <- xsa, b <- xsb, c <- xsc, a*a+b*b == c*c]