Buenas, pessoal!
Hora de resolver o problema "Diferença" (difference) do URI/Beecrowd em Haskell. É um problema bem simples, na mesma linha dos outros problemas iniciantes. Veja abaixo como fica a resposta!
Plataforma: Beecrowd (antiga URI)
In english:
Read four integer values named A, B, C and D. Calculate and print the difference of product A and B by the product of C and D (A * B - C * D).
Em português:
Leia quatro valores inteiros nomeados A, B, C e D. Calcule e imprima a diferença do produto de A e B pelo produto de C e D (A * B - C * D).
Linguagem: Haskell
Solução:
Basta ler quatro inteiros (a, b, c, d) com readLn e definindo o tipo como IO Int e depois usar o putStrLn para colocar em tela uma mensagem como o exercício manda: "DIFERENCA = valor". No lugar de valor devemos colocar a expressão a*b - c*d. Dentro da função putStrLn precisamos converter o resultado dessa expressão para string, pois putStrLn coloca string na tela. Então precisamos da função show. O operador ++ faz a concatenação das listas "DIFERENCA = " com a lista que contém os caracteres da resposta de a*b - c*d, pois após a conversão a nossa resposta vira uma lista de caracteres (string).
O código fica da seguinte maneira:
main :: IO ()
main = do
a <- readLn :: IO Int
b <- readLn :: IO Int
c <- readLn :: IO Int
d <- readLn :: IO Int
putStrLn ("DIFERENCA = " ++ show(a*b - c*d))
Se você preferir, também pode utilizar let nessa solução. Caso tenha dúvidas sobre como fazer isso, você pode consultar outros posts sobre Haskell ou deixar um comentário que eu ajudo a fazer com let!
Ajude o blog! PIX para doações: 6d8bc7a8-5d74-493a-ab7a-3515baf35956