Funo recursiva um formalismo usado para especificar algoritmos que construdo a partir de funes elementares de forma composicional, no sentido em que o algoritmo denotado pela funo pode ser determinado em termos de suas funes componentes (DIVERIO; MENEZES, 2011, p. 214).
4. FUNES RECURSIVAS: funes recursivas de
Kleene So construdas a partir de trs funes naturais e trs operaes: zero zero: N N, tal que xN , zero(x) = 0 sucessor de um nmero natural sucessor: N N, tal que xN , sucessor(x) = x + 1 projeo projeoi: Nn N, tal que projeoi (x1, x2, ... xn) = xi
4. FUNES RECURSIVAS: funes recursivas de
Kleene So construdas a partir de trs funes naturais e trs operaes: substituio composicional sejam as funes recursivas g: Nk N e f1, f2, ... fk: Nn N, ento h: Nn N definida por substituio composicional a partir das funes g, f1, f2, ... fk como h(x1, x2, ... xn) = g(f1(x1, x2, ... xn), f2(x1, x2, ... xn), ... fk(x1, x2, ... xn)) recurso sejam as funes recursivas f: Nn N e g: Nn+2 N, ento N definida por recurso a partir das funes f e g como h(x1, x2, ... xn, 0) = f(x1, x2, ... xn) h(x1, x2, ... xn, y+1) = g(x1, x2, ... xn, y, h(x1, x2, ... xn, y)) minimizao seja a funo recursiva f: Nn+1 N, ento h: Nn N definida por minimizao da funo f como h(x1, x2, ... xn) = min {y | f(x1, x2, ... xn, y) = 0 }
h:
Nn+1
4. FUNES RECURSIVAS: clculo Lambda linguagem
A linguagem Lambda (ou -linguagem) o conjunto dos -termos sobre um conjunto infinito (V) de variveis. So - termos: variveis: vV um -termo -abstrao: se M um -termo e xV, ento (x.M) um -termo Uma -abstrao representa uma funo que possui um parmetro. EXEMPLO: x.(x + 1) -aplicao: se M e N so -termos, ento (M N) tambm um -termo Uma -aplicao representa a aplicao da funo M a um valor N. EXEMPLO: (x.(x + 1)) 3
O resultado de uma aplicao calculado por substituio e reduo, que
interpretada como um passo computacional na busca de um valor representativo para um -termo qualquer (DIVERIO; MENEZES, 2011, p. 229).
4. FUNES RECURSIVAS: clculo Lambda linguagem
Existem trs tipos de redues: reduo alfa (-reduo): renomeao de variveis ligadas, isto , variveis que esto no escopo de um -termo; x.M y.M[xy] reduo beta (-reduo): aplicao de uma funo a um argumento, por substituio; (x.M)N M[xN] reduo iterada: aplicao sucessiva de qualquer das redues anteriores.
4. FUNES RECURSIVAS: importncia
Funes recursivas possuem um poder de expresso significativo, no sentido em que uma simples funo pode representar um algoritmo consideravelmente complexo (DIVERIO; MENEZES, 2011, p. 237). Linguagens de programao funcionais, como Lisp e Haskell, onde programas so funes e composio de funes em vez de comandos, so baseadas no clculo Lambda. Alm disso, as linguagens de programao possuem recurso como um construtor bsico de programas e o Java 8 inclui -expresses, isto , expresses do Clculo-Lambda que permitem a chamada de funes sem a atribuio de nomes, isto , anonimamente.
DOCUMENTOS CONSULTADOS / RECOMENDADOS
1.
DIVERIO, T. A.; MENEZES, P. B. Teoria da computao: mquinas
universais e computabilidade. 3.ed. Porto Alegre: Bookman, 2011.