Suma de cadenas
Definir la función
1 |
sumaCadenas :: String -> String -> String |
tal que (sumaCadenas xs ys) es la cadena formada por el número entero que es la suma de los números enteros cuyas cadenas que lo representan son xs e ys; además, se supone que la cadena vacía representa al cero. Por ejemplo,
1 2 3 4 5 6 7 8 |
sumaCadenas "2" "6" == "8" sumaCadenas "14" "2" == "16" sumaCadenas "14" "-5" == "9" sumaCadenas "-14" "-5" == "-19" sumaCadenas "5" "-5" == "0" sumaCadenas "" "5" == "5" sumaCadenas "6" "" == "6" sumaCadenas "" "" == "0" |
Soluciones
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
-- 1ª solución -- =========== sumaCadenas1 :: String -> String -> String sumaCadenas1 xs ys = show (sum (map read (filter (not . null) [xs, ys]))) -- 2ª solución -- =========== sumaCadenas2 :: String -> String -> String sumaCadenas2 = ((show . sum . map read . filter (not . null)) .) . (. return) . (:) -- 3ª solución -- =========== sumaCadenas3 :: String -> String -> String sumaCadenas3 "" "" = "0" sumaCadenas3 "" ys = ys sumaCadenas3 xs "" = xs sumaCadenas3 xs ys = show (read xs + read ys) -- 4ª solución -- =========== sumaCadenas4 :: String -> String -> String sumaCadenas4 xs ys = show (numero xs + numero ys) -- (numero xs) es el número entero representado por la cadena xs -- suponiendo que la cadena vacía representa al cero.. Por ejemplo, -- numero "12" == 12 -- numero "-12" == -12 -- numero "0" == 0 -- numero "" == 0 numero :: String -> Int numero "" = 0 numero xs = read xs |
El código se encuentra en GitHub.
7 Comentarios