A Paradigma Funcional
Por: Josoé Schmidt Braga • 20/9/2015 • Resenha • 1.258 Palavras (6 Páginas) • 370 Visualizações
Paradigma Funcional
Introdução
Uma função é uma regra para mapear (ou associar) elementos de um conjunto (o domínio)
em elementos de outros conjuntos (o contra-domínio).
Ex.:
Quadrado(x)
x x’
( 2 3 4 ) ( 4 9 16 )
domínio contra-domínio
Uma vez que a função está definida ela pode ser aplicada a um elemento particular do seu
domínio e essa aplicação fornece o elemento associado no contra-domínio.
Quadrado(x) ≡ x * x, usa-se o símbolo “≡” para expressar “é equivalente a” nesta definição x
é um parâmetro, denotando qualquer elemento do domínio. Em tempo de aplicação, especifica-se um
elemento particular do domínio. Este elemento, chamado argumento, substitui o parâmetro de
definição.
Uma linguagem funcional faz uso das propriedades matemáticas das funções.
Uma linguagem funcional tem 4 componentes:
A) Um conjunto de funções primitivas: As funções primitivas são prédefinidas
pela linguagem e podem ser aplicadas.
B) Um conjunto de formas funcionais: As formas funcionais são mecanismos
pelos quais se podem combinar funções para criar novas funções.
C) A operação de aplicação: A operação de aplicação é o mecanismo
embutido para aplicar uma função a seus argumentos e produzir um valor.
D) Um conjunto de dados (ou objetos): Os dados são os elementos
Paradigma Funcional Page 1 of 10
http://www.ulbra.inf.br/moodle/file.php/167/logfun.htm 13/03/2013
permitidos nos domínios e co-domínios.
Os objetos da linguagem são bastante simples:
Um objeto pode ser um átomo ou uma seqüência de objetos, a seqüência vazia é representada por
NIL.
Átomos são cadeias de caracteres, como A, ABC, 26.
Há um conjunto de funções e formas funcionais.
Não há variável, qualquer dado pode ser usado literalmente.
Uma seqüência de N objetos x1,x2,x3,...,xn é representada por
aplicada ao parâmetro x por ƒ:x.
Paradigma Funcional Page 2 of 10
http://www.ulbra.inf.br/moodle/file.php/167/logfun.htm 13/03/2013
Funções primitivas
A linguagem fornece certas funções primitivas que correspondem aproximadamente ás
operações embutidas das linguagens imperativas.
A) Operação de seleção e estruturação
i :
first :
last :
tail left :
length :
rotation left:
rotl : ≡
rotation right :
rotr : ≡
constrution :
cons : <1,<2,3,4>> ≡ <1,2,3,4>
*nota tail = cortar; length = contar; i = seleção
Paradigma Funcional Page 3 of 10
http://www.ulbra.inf.br/moodle/file.php/167/logfun.htm 13/03/2013
B) Operação Identidade
id : x ≡ x
C) Operações aritméticas
+ :
- :
* :
/ :
| :
D) Operações Predicado
> :
< :
atom : x ≡ T if x atomo atom : ≡ F
Paradigma Funcional Page 4 of 10
http://www.ulbra.inf.br/moodle/file.php/167/logfun.htm 13/03/2013
null : x ≡ T if x nil null : ≡ F
equal : x ≡ T if x =y eq : ≡ F
and : x ≡ T if both are T and :
or : x ≡ T if one is T or :
not : x ≡ T if x is F not : F ≡ T
E) Operações de seleção e estruturação completas
distribution left :
distribution rigth : <
append rigth : <
appdr : <,a> ≡
tail right :
tlr : ≡
i right :
Paradigma Funcional Page 5 of 10
http://www.ulbra.inf.br/moodle/file.php/167/logfun.htm 13/03/2013
Formas Funcionais
A) Composição
( ƒ ○ g ): x ≡ ƒ : ( g : x )
ex.: (rotl ○ cons ) :
rotl ( cons :
rotl :
2 : ( tl : )
2 : ≡
(last ○ rotr ○ first ) : <,d,
...