Bom dia!
Hoje vim bem cedo aqui para já postar mais uma solução de exercício em Haskell, essa linguagem funcional que é muito fácil de usar :)
O exercício da vez também é da categoria Iniciante e se chama "Consumption" (Consumo). Nesse exercício a gente trabalha as questões de tipos e formatação de saída. É possível falar que a solução fica, de certa forma, parecida com a solução em C, pois a formatação também pode ser feita com printf, função disponível em C pela biblioteca stdio.
Então, vamos conferir a resposta?
Problema: 1014
Enunciado:
Calcule o consumo médio de um automóvel sendo fornecidos a distância total percorrida (em Km) e o total de combustível gasto (em litros).
Linguagem: Haskell
Aqui foi importante importar a função printf, disponível em Text.Printf, para poder formatar a saída com três casas decimais como pede o exercício. Na nossa função main, lemos os dois valores da entrada padrão com readLn definindo o tipo como IO Double, já que é lido da entrada padrão (stdin) e o valor é um número real.
Com os valores lidos, basta dividir o primeiro valor pelo segundo, formatando o printf com %.3f para delimitar em três casas decimais. Em Haskell há uma limitação na formatação, não aceitando %lf (long float, que seria o double) e aceitando somente %f. Dessa forma, usa-se %.3f e isso resolve o exercício!
import Text.Printf (printf) main :: IO () main = do distance <- readLn :: IO Double fuelTotal <- readLn :: IO Double printf "%.3f km/l\n" (distance / fuelTotal)