Escolar Documentos
Profissional Documentos
Cultura Documentos
I
I
Funcoes:
I
I
I
I
(ordem)
igualdade e comparacoes
retorna True sse ambos argumentos iguais a True
&& (e):
|| (ou): retorna True sse algum argumento igual a True
do argumento
not (nao):
retorna negacao
Integer, Int
I
I
I
(ordem)
resultado de igualdade e comparacoes
Aritmeticas:
+, -, *, div, mod, abs, negate,
fromInteger, toInteger
Conversao:
com guardas
Definicoes
de funcao
pode usar guardas. Ex.:
Definicao
signum x
| x > 0
= 1
| x < 0
= -1
| otherwise = 0
Equivale a:
signum x = if x>0 then 1
else if x<0 then -1
else 0
Outros exemplos:
max x y | x >= y
| otherwise
max3 x y z
| x >= y && x>= z
| y >= z
| otherwise
= x
= y
= x
= y
= z
Char
I
Conversao
I
I
Exemplos de funcoes:
offset:: Int
offset = fromEnum A - fromEnum a
toUpper:: Char -> Char
toUpper ch = toEnum (fromEnum ch + offset)
isDigit:: Char -> Bool
isDigit ch = (0 <= ch) && (ch <= 9)
String
Sequencias
de caracteres
I
I
I
I
show
show
read
read
(2+3)
"5"
(not True)
"False"
"False"
False
5
5
Ponto Flutuante
limitados
Float, Double: tamanhos e precisao
I
I
(ordem)
resultado de igualdade e comparacoes
Aritmeticas:
+, -, *, /, , **, abs, negate, cos, sin, tan,
acos, asin, atan, ceiling, floor, round, log, logBase, pi,
signum, sqr
fromIntegral, fromInteger, toIntegral, toInteger
Conversao:
I
ha conversao
automatica:
de tipos
Nao
verificacao
(considere os tipos!)
Exemplo: 2 + 5.0 correto porque 2 equivale a
fromInteger 2
Regra de leiaute
definicao
Exemplo:
f x = x *x
+x
-2
g y = ...
Operadores
I
I
I
I
Operadores sao
tipicamente binarias
usam os smbolos, quando
Chamadas de funcoes
binarias,
antes,
operacoes
entre os operandos (e nao
Precedencia
e Associatividade de Operadores
I
precedencia
Operadores tem
entre 0 (a menor) e 9 (a
Aplicacao
sobre uso de
operadores. Ex.: f x + 1 e o mesmo que (f x) + 1
Associatividade pode ser a` esquerda ou a` direita, e indica,
para um operador qualquer, digamos +, se: e1 + e2 +
e3 e equivalente a: (e1 + e2) + e3 ou a: (e1 + (e2
+ e3 No primeiro caso a associatividade e a` esquerda e
no segundo caso a` direita
Precedencia
e associatividade de operadores devem ser
usadas para aumentar a legibilidade de programas
(evitando parenteses)