Buscar

06 - Paradigma Funcional

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Paradigma	
  Funcional	
  
Renata	
  Carvalho	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Programação	
  Funcional	
  
•  Paradigma	
  de	
  programação	
  onde:	
  
•  Programas	
  consistem	
  em	
  definições	
  de	
  dados	
  e	
  
funções	
  
•  Execução	
  de	
  um	
  programa	
  é	
  o	
  mesmo	
  que	
  a	
  
avaliação	
  de	
  expressões	
  
•  Como	
  uma	
  calculadora:	
  lê,	
  calcula	
  e	
  	
  dá	
  o	
  resultado	
  
•  Funções	
  não	
  têm	
  efeitos	
  colaterais	
  e	
  são	
  valores	
  de	
  
primeira	
  ordem	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Características	
  
•  Visão	
  clara	
  de	
  conceitos	
  fundamentais	
  
•  Abstração	
  e	
  Spos	
  de	
  dados	
  
•  Recursão	
  
•  Polimorfismo	
  
•  Já	
  foi	
  mais	
  usado	
  academicamente	
  
•  Hoje	
  já	
  é	
  usado	
  na	
  indústria	
  
•  Facebook,	
  Twi\er,	
  Foursquare	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Características	
  
•  Vantagem:	
  
•  Devido	
  ao	
  alto	
  nível	
  de	
  abstração,	
  programas	
  
funcionais	
  são	
  menores	
  e	
  mais	
  claros	
  
•  Mais	
  próximos	
  de	
  uma	
  especificação	
  matemáSca	
  
•  Predisposição	
  a	
  concorrência	
  e	
  paralelismo	
  
•  Desvantagem:	
  
•  Di]cil	
  prever	
  os	
  custos	
  de	
  execução	
  
•  Alguns	
  algoritmos	
  são	
  mais	
  eficientes	
  quando	
  
implementados	
  de	
  forma	
  imperaSva	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
História	
  
•  1930s	
  
•  Alonzo	
  Church	
  desenvolve	
  o	
  cálculo-­‐λ,	
  um	
  
formalismo	
  matemáSco	
  para	
  exprimir	
  computação	
  
usando	
  funções	
  
•  1950s	
  
•  Inspirado	
  no	
  cálculo-­‐λ,	
  John	
  McCarthy	
  desenvolve	
  o	
  
LISP,	
  uma	
  das	
  primeiras	
  linguagens	
  de	
  programação	
  
•  1970s	
  
•  Robin	
  Milner	
  desenvolve	
  o	
  ML	
  a	
  primeira	
  linguagem	
  
funcional	
  com	
  polimorfismo	
  e	
  inferência	
  de	
  Spos	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
História	
  
•  1970s	
  –	
  1980s	
  
•  David	
  Turner	
  desenvolve	
  a	
  teoria	
  do	
  lazy	
  evalua)on,	
  
culminando	
  na	
  linguagem	
  comercial	
  Miranda	
  
•  1987	
  
•  Um	
  comitê	
  acadêmico	
  inicia	
  o	
  desenvolvimento	
  de	
  
Haskell,	
  uma	
  linguagem	
  funcional	
  lazy	
  padronizada	
  
e	
  aberta	
  
•  2003	
  
•  Publicação	
  do	
  Haskell	
  98	
  
•  2010	
  
•  Publicação	
  do	
  Haskell	
  2010	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Notação	
  
•  Definição	
  de	
  variáveis	
  
•  resposta	
  ::	
  Int	
  
	
  	
  	
  resposta	
  =	
  17	
  
	
  
•  maior	
  ::	
  Bool	
  
	
  	
  	
  maior	
  =	
  (resposta	
  >	
  30)	
  
	
  
•  sim	
  ::	
  Bool	
  
	
  	
  	
  sim	
  =	
  True	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Notação	
  
•  Definição	
  de	
  funções	
  
•  quadrado	
  ::	
  Int	
  -­‐>	
  Int	
  
	
  	
  	
  quadrado	
  x	
  =	
  x	
  *	
  x	
  
	
  
•  tudoIgual	
  ::	
  Int	
  -­‐>	
  Int	
  -­‐>	
  Int	
  -­‐>	
  Bool	
  
	
  	
  	
  tudoIgual	
  x	
  y	
  z	
  =	
  (x	
  ==	
  y)	
  &&	
  (y	
  ==	
  z)	
  
	
  
•  maior	
  ::	
  Int	
  -­‐>	
  Int	
  -­‐>	
  Int	
  
	
  	
  	
  maior	
  x	
  y	
  	
  
	
  |	
  x	
  >=	
  y	
   	
  =	
  x	
  
	
  |	
  otherwise	
   	
  =	
  y	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Notação	
  
•  Aplicação	
  de	
  funções	
  
•  quadrado	
  3 	
   	
   	
  =	
  9	
  
•  quadrado	
  (3) 	
   	
   	
  =	
  9	
  
•  tudoIgual	
  1	
  2	
  3 	
   	
   	
  =	
  False	
  
•  tudoIgual	
  (1)	
  (2)	
  (3) 	
   	
  =	
  False	
  
•  tudoIgual	
  (1,	
  2,	
  3) 	
   	
  ERRO	
  
•  tudoIgual	
  6	
  6	
  6 	
   	
   	
  =	
  True	
  
•  maior	
  8	
  2	
   	
   	
   	
  =	
  8	
  
•  maior	
  9	
  11 	
   	
   	
  =	
  11	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Notação	
  
•  Recursão	
  
•  Definir	
  o	
  caso	
  base	
  (ex:	
  fun	
  0)	
  
•  Definir	
  o	
  valor	
  para	
  fun	
  n	
  usando	
  o	
  valor	
  de	
  fun	
  n-­‐1	
  
•  somarAte	
  0	
  =	
  0	
  
	
  	
  	
  somarAte	
  n	
  =	
  somarAte	
  n-­‐1	
  +	
  n	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Exercícios	
  
•  Escreva	
  uma	
  função	
  que	
  recebe	
  uma	
  nota	
  e	
  
retorna	
  o	
  conceito	
  correspondente	
  conforme	
  
as	
  regras	
  abaixo:	
  
•  Nota	
  >=	
  9.0	
   	
   	
  conceito	
  A	
  
•  Nota	
  >=	
  7.5	
  e	
  <	
  9.0 	
  conceito	
  B	
  
•  Nota	
  >=	
  6.0	
  e	
  <	
  7.5 	
  conceito	
  C	
  
•  Nota	
  <	
  6.0 	
   	
  conceito	
  D	
  
*	
  USlizar	
  os	
  Spos	
  Char	
  e	
  Float	
  
	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Exercício	
  
•  Escreva	
  uma	
  função	
  que	
  dadas	
  duas	
  notas,	
  
retorna	
  True	
  caso	
  o	
  aluno	
  tenha	
  passado,	
  e	
  
retorna	
  False	
  caso	
  contrário	
  
•  Para	
  passar	
  é	
  necessário	
  obter	
  média	
  7.0	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
NotaçãoExercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Exercício	
  
•  Escreva	
  uma	
  função	
  que,	
  dada	
  uma	
  nota	
  e	
  a	
  
quanSdade	
  de	
  trabalhos	
  feitos	
  pelo	
  aluno,	
  
retorna	
  a	
  nota	
  final	
  do	
  aluno	
  de	
  acordo	
  com	
  a	
  
regra:	
  
•  O	
  primeiro	
  trabalho	
  feito	
  vale	
  0,5;	
  o	
  segundo	
  vale	
  
1,0;	
  o	
  terceiro	
  vale	
  1,5;	
  e	
  assim	
  por	
  diante	
  
•  A	
  maior	
  nota	
  permiSda	
  é	
  10.0	
   Programação	
  Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Notação	
  
•  Casamento	
  de	
  padrões	
  
•  Permite	
  usar	
  padrões	
  no	
  lugar	
  de	
  variáveis,	
  na	
  
definição	
  de	
  funções	
  
•  meuNao	
  ::	
  Bool	
  -­‐>	
  Bool	
  
	
  	
  	
  	
  meuNao	
  False	
  =	
  True	
  
	
  	
  	
  	
  meuNao	
  True	
  =	
  False	
  
	
   	
   	
  	
  
•  meuOu	
  ::	
  Bool	
  -­‐>	
  Bool	
  -­‐>	
  Bool	
  
	
  	
  	
  	
  meuOu	
  True	
  x	
  =	
  True	
  
	
  	
  	
  	
  meu	
  Ou	
  False	
  x	
  =	
  x	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Notação	
  
•  Letras	
  maiúsculas	
  
•  Usadas	
  para	
  Spos	
  e	
  construtores	
  (tuplas,	
  listas,	
  Spos	
  
algébricos)	
  
•  Letras	
  minúsculas	
  
•  Usadas	
  funções,	
  variáveis,	
  parâmetros	
  
•  Case	
  sensi)ve	
  
•  Comentários	
  
•  -­‐-­‐	
  isso	
  é	
  um	
  comentário	
  de	
  uma	
  linha	
  
•  {-­‐	
  comentários	
  de	
  
	
  	
  	
  	
  	
  	
  	
  várias	
  linhas	
  -­‐}	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Notação	
  
•  Erros	
  comuns	
  
•  quadrado	
  x	
  =	
  x	
  
	
  	
  	
  *	
  x	
  
•  proximo	
  x	
  =	
  x	
  +	
  
	
  	
  	
  1	
  
•  Proximo	
  x	
  =	
  x	
  +	
  1	
  
•  proximo	
  2	
  +	
  1	
  
•  proximo	
  (2	
  +	
  1)	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Exercícios	
  
•  Defina	
  as	
  funções:	
  
•  Fatorial	
  
fatorial	
  ::	
  Int	
  -­‐>	
  Int	
  
•  Compara	
  se	
  4	
  números	
  são	
  iguais	
  
tudoIgual4	
  ::	
  Int	
  -­‐>	
  Int	
  -­‐>	
  Int	
  -­‐>	
  Int	
  -­‐>	
  Bool	
  
•  tudoIgual4	
  usando	
  tudoIgual	
  
•  Retorna	
  quantos	
  parâmetros	
  são	
  iguais	
  
contaIgual	
  ::	
  Int	
  -­‐>	
  Int	
  -­‐>	
  Int	
  -­‐>	
  Int	
  -­‐>	
  Int	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Notação	
  
•  Definições	
  locais	
  
•  somaQuadrados	
  ::	
  Int	
  -­‐>	
  Int	
  -­‐>	
  Int	
  
•  somaQuadrados	
  x	
  y	
  =	
  sqX	
  +	
  sqY	
  
	
  where	
  	
  sqX	
  =	
  x	
  *	
  x	
  
	
   	
  sqY	
  =	
  y	
  *	
  y	
  
•  somaQuadrados	
  x	
  y	
  =	
  sq	
  x	
  +	
  sq	
  y	
  
	
  where	
  sq	
  z	
  =	
  z	
  *	
  z	
  
•  somaQuadrados	
  x	
  y	
  =	
   	
  let	
  sqX	
  =	
  x	
  *	
  x	
  
	
   	
   	
   	
  	
  	
  	
  	
  	
  	
  sqY	
  =	
  y	
  *	
  y	
  
	
   	
   	
   	
  in	
  sqX	
  +	
  sqY	
  
	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Notação	
  
•  Definições	
  locais	
  
•  let	
  definições	
  in	
  expressão	
  
•  expressão	
  where	
  definições	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Tipos	
  
•  Números	
  inteiros	
  
•  1,	
  2	
  ,3,	
  …	
  ::	
  Int	
  
•  +,	
  -­‐,	
  *,	
  div,	
  ^,	
  mod	
  ::	
  Int	
  -­‐>	
  Int	
  -­‐>	
  Int	
  
•  >,	
  >=,	
  <,	
  <=,	
  ==,	
  /=	
  ::	
  Int	
  -­‐>	
  Int	
  -­‐>	
  Bool	
  	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Tipos	
  
•  Números	
  inteiros	
  –	
  Exemplos	
  
•  2^3 	
   	
   	
   	
  =	
  8	
  
•  div	
  14	
  3 	
   	
   	
   	
  =	
  4	
  
•  14	
  `div`	
  3	
   	
   	
   	
  =	
  4	
  
•  mod	
  14	
  3	
   	
   	
   	
  =	
  2	
  
•  2	
  /=	
  5 	
   	
   	
   	
  =	
  True	
  
•  2	
  ==	
  5 	
   	
   	
   	
  =	
  False	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Tipos	
  
•  Booleanos	
  
•  True,	
  False	
  ::	
  Bool	
  
•  &&,	
  ||	
  ::	
  Bool	
  -­‐>	
  Bool	
  -­‐>	
  Bool	
  
•  not	
  ::	
  Boot	
  -­‐>	
  Bool	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Tipos	
  
•  Booleanos	
  –	
  Exemplos	
  
•  True	
  &&	
  False 	
   	
   	
   	
  =	
  False	
  
•  True	
  ||	
  False 	
   	
   	
   	
  =	
  True	
  
•  not	
  True 	
   	
   	
   	
   	
  =	
  False	
  
•  not	
  False	
   	
   	
   	
   	
  =	
  True	
  
•  xor	
  ::	
  Bool	
  -­‐>	
  Bool	
  -­‐>	
  Bool	
  
	
  	
  	
  xor	
  x	
  y	
  =	
  (x	
  ||	
  y)	
  &&	
  not	
  (x	
  &&	
  y)	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Tipos	
  
•  Caracteres	
  
•  ‘a’,	
  ‘b’,	
  ‘c’,	
  …	
  ::	
  Char	
  
•  ‘\t’,	
  ‘\n’,	
  ‘\\’,	
  ‘\’’,	
  ‘\”’	
  ::	
  Char	
  
•  ord	
  ::	
  Char	
  -­‐>	
  Int	
  
•  chr	
  ::	
  Int	
  -­‐>	
  Char	
  
Programação	
  
FuncionalCaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Tipos	
  
•  Caracteres	
  –	
  Exemplos	
  
•  diferenca	
  =	
  ord	
  (‘A’)	
  –	
  ord	
  (‘a’)	
  
•  maiuscula	
  ::	
  Char	
  -­‐>	
  Char	
  
	
  	
  	
  maiuscula	
  ch	
  =	
  chr	
  (ord	
  ch	
  +	
  diferenca)	
  
	
  
•  ehDigito	
  ::	
  Char	
  -­‐>	
  Bool	
  
	
  	
  	
  ehDigito	
  ch	
  =	
  (‘0’	
  <=	
  ch)	
  &&	
  (ch	
  <=	
  ‘9’)	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Tipos	
  
•  String	
  
•  “abc”,	
  “renata”	
  ::	
  String	
  
•  ++	
  ::	
  String	
  -­‐>	
  String	
  -­‐>	
  String	
  
•  show	
  ::	
  ?	
  -­‐>	
  String	
  
•  read	
  ::	
  String	
  -­‐>	
  ?	
  
•  Overloading	
  
•  ‘’,	
  “”,	
  “	
  ”	
  são	
  diferentes	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Tipos	
  
•  String	
  –	
  Exemplos	
  
•  “renata”	
  ++	
  “\n”	
  ++	
  “carvalho”	
  ++	
  “\n”	
  
	
   	
  =	
  “renata\ncarvalho\n”	
  
	
  
•  putStr	
  (“renata”	
  +	
  “\n”	
  +	
  “carvalho”	
  +	
  “\n”)	
  
	
   	
  =	
  renata	
  
	
   	
  	
  	
  	
  carvalho	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Tipos	
  
•  Números	
  reais	
  	
  
•  Float	
  e	
  Double	
  
•  4.567	
  
•  +,	
  -­‐,	
  *,	
  /	
  ::	
  Float	
  -­‐>	
  Float	
  -­‐>	
  Float	
  
•  pi	
  ::	
  Float	
  
•  ceiling,	
  floor,	
  round	
  ::	
  Float	
  -­‐>	
  Int	
  
•  fromIntegral	
  ::	
  Int	
  -­‐>	
  Float	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Tipos	
  
•  Números	
  reais	
  –	
  Exemplos	
  
•  2.5	
  +	
  1.38 	
   	
   	
   	
  =	
  3.88	
  
•  5	
  /	
  2 	
   	
   	
   	
   	
  =	
  2.5	
  
•  ceiling	
  9.02 	
   	
   	
   	
  =	
  10	
  
•  floor	
  14.79 	
   	
   	
   	
  =	
  14	
  
•  round	
  5.25 	
   	
   	
   	
  =	
  5	
  
•  round	
  5.75 	
   	
   	
   	
  =	
  6	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Exercícios	
  
•  Defina	
  a	
  função	
  adicionaEspacos	
  que	
  produz	
  
uma	
  String	
  com	
  uma	
  quanSdade	
  n	
  de	
  espaços	
  
•  Defina	
  a	
  função	
  paraDireita	
  para	
  adicionar	
  
uma	
  quanSdade	
  n	
  de	
  espaços	
  à	
  esquerda	
  de	
  
uma	
  String,	
  movendo-­‐a	
  para	
  a	
  direita	
   Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Exercícios	
  
•  Escreva	
  uma	
  função	
  para	
  retornar	
  em	
  forma	
  de	
  
tabela,	
  todas	
  as	
  notas	
  de	
  um	
  aluno,	
  incluindo	
  o	
  
total	
  e	
  a	
  média	
  final.	
  Use	
  as	
  funções	
  já	
  definidas	
  e	
  
defina	
  novas,	
  se	
  achar	
  necessário.	
  
•  Ex:	
  imprimeTabela	
  nota1	
  trb1	
  nota2	
  trb2	
  
Nota 	
  Trabalhos 	
  Nota	
  Final	
  
5.0 	
   	
  3 	
   	
  8.0	
  
1.0 	
   	
  2 	
   	
  2.5	
  
Total 	
   	
   	
  10.5	
  
Média 	
   	
   	
  5.25	
  
Programação	
  
Funcional	
  
CaracterísScas	
  
História	
  
Notação	
  
Exercícios	
  
Notação	
  
Exercícios	
  
Notação	
  
Tipos	
  
Exercícios

Outros materiais