Paradigma
1.1. div 6 3
Prelude> div 6 3
2
1.2. mod 10 4 == 2
Prelude> mod 10 4 == 2
True
1.3. 5^3
Prelude> 5^3
125
1.4. 5**3
Prelude> 5**3
125.0
1.5. 5^(-3)
Prelude> 5^(-3)
*** Exception: Negative exponent
1.6. 5**(-3)
Prelude> 5**(-3)
8.0e-3
1.7. 2^3^4
Prelude> 2^3^4
2417851639229258349412352
1.8. 2**3**4
Prelude> 2**3**4
2.4178516392292583e24
1.9. 4*2^3
Prelude> 4*2^3
32
1.10. sqrt ((5**2) + (9**2))
Prelude> sqrt ((5**2) + (9**2))
10.295630140987
1.11. sin(pi/6)
Prelude> sin(pi/6)
0.49999999999999994
1.12. cos 0.5
Prelude> cos 0.5 0.8775825618903728 1.13. (+) 1 ((+) 2 3)
Prelude> (+) 1 ((+) 2 3)
6
1.14. 36*14 == 450-23/2
Prelude> 36*14 == 450-23/2
False
1.15. length ['a'..'z']
Prelude> length ['a'..'z']
26
1.16. "codigo" ++ "-fonte"
Prelude> "codigo" ++ "-fonte"
"codigo-fonte"
1.17. sum[1..115]
Prelude> sum[1..115]
6670
1.18. log 2.718
Prelude> log 2.718
0.999896315728952
1.19. log 10
Prelude> log 10
2.302585092994046
1.20. exp 2
Prelude> exp 2
7.38905609893065
1.21. floor (exp 2)
Prelude> floor (exp 2)
7
1.22. log (exp 2)
Prelude> log (exp 2)
2.0
1.23. (sin x)^2 + (cos x)^2 where x = 2
Prelude> (sin x)^2 + (cos x)^2 where x = 2
:34:23: parse error on input ‘where’
2. Analise a função seguinte escrita em Haskell e explique sua finalidade.
fun m n p = (m==n) && (n==p)
R.: A função fun recebe três valores e retorna verdadeiro se os três valores forem iguais, e falso se forem diferentes.
3. Sejam as duas funções abaixo (par1 e par2) que verificam se um dado número é par. Teste cada função e explique a estratégia utilizada na implementação de cada uma.
par1 :: Int -> Bool par1 x = (mod x 2) == 0
par2 :: Int -> Bool par2 z | z == 0 = True | otherwise = not(par2