Surgimento do universo

Disponível somente no TrabalhosFeitos
  • Páginas : 6 (1442 palavras )
  • Download(s) : 0
  • Publicado : 8 de setembro de 2012
Ler documento completo
Amostra do texto
Cálculo lambda
Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Na lógica matemática e na ciência da computação, cálculo lambda, também escrito como cálculo-λ é um sistema formal que estuda funções recursivas computáveis, no que se refere a teoria da computabilidade, e fenômenos relacionados, como variáveis ligadas e substituição. Sua principal característica são asentidades que podem ser utilizadas como argumentos e retornadas como valores de outras funções.
A parte relevante de cálculo lambda para computação ficou conhecida como cálculo lambda não-tipado. O cálculo lambda tipado e o não-tipado tem suas idéias aplicadas nos campos da lógica, teoria da recursão (computabilidade) e linguística, e tem tido um grande papel no desenvolvimento da teoria de linguagens deprogramação (com a versão não-tipada sendo a inspiração original para programação funcional, em particular Lisp, e a versão tipada contribuindo para fundamentar modernos sistemas de tipos e linguagens de programação). Neste artigo, a versão não-tipada será discutida largamente.
Índice * 1 História * 2 Descrição informal * 2.1 Motivação * 2.2 O cálculo lambda * 2.2.1 Termoslambda * 2.2.2 Alfa-equivalência * 2.2.3 Variáveis livres * 3 Definição formal * 4 Outras linguagens puras * 5 Ver também * 6 Referências |
História
Cálculo lambda foi apresentada por Alonzo Church na década de 1930 como parte da investigação dos fundamentos da matemática[1][2]. O sistema original foi demonstrado ser logicamente inconsistente em 1935 quando Stephen Kleenee J. Barkley Rosser desenvolveram o paradoxo Kleene-Rosser.
Em seguida, em 1936, Church isolou e publicou apenas a parte que era relevante para a computação e que depois ficou conhecida como cálculo lambda não-tipado.[3] Em 1940, ele também apresentou uma versão computacionalmente mais fraca, mas com um sistema lógico consistente, conhecido como cálculo lambda simplesmente tipado.[4]
Descriçãoinformal
Motivação
Funções recursivas são um conceito fundamental dentro da ciência da computação e da matemática. O cálculo-λ provê uma semântica simples para computações, permitindo que propriedades da computação fossem estudadas formalmente.
Considere os dois exemplos a seguir. A função identidade
I(x) = x
recebe uma única entrada, x, e imediatamente retorna x (ou seja, a identidade não faz nadacom sua entrada), enquanto a função
sqsum(x, y) = x*x + y*y
recebe um par de entradas, x e y e retorna a soma de seus quadrados, x*x + y*y. Usando estes dois exemplos, podemos fazer algumas observações úteis que motivam as principais idéias em cálculo-λ.
A primeira observação é que funções não precisam ser nomeadas explicitamente. Isto é, a função
sqsum(x, y) = x*x + y*y
pode ser reescrita na formaanônima como
(x, y) ↦ x*x + y*y
(leia-se “a tupla x e y é mapeada em x*x + y*y”). Similarmente,
I(x) = x
pode ser reescrita em sua forma anônima para x ↦ x, onde a entrada é simplesmente mapeada para si mesma.
A segunda observação é que a escolha do nome para os argumentos de uma função é totalmente irrelevante. Isto é,
x ↦ x e
y ↦ y
expressam a mesma função: a identidade. De forma similar,
(x,y) ↦ x*x + y*y e
(u, v) ↦ u*u + v*v
também expressam a mesma função.
Finalmente, qualquer função que recebe duas entradas, como a função sqsum do exemplo, pode ser reelaborada numa função equivalente que recebe uma única entrada e tem, como saída, uma outra função, que por sua vez também aceita uma única entrada. Por exemplo,
(x, y) ↦ x*x + y*y
pode ser reelaborada para
x ↦ (y ↦ x*x + y*y)
Estatransformação é chamada currying, e pode ser generalizada para funções que aceitam um número arbitrário de argumentos.
Currying pode ser entendido de forma mais clara através de um exemplo. Compare a função
(x, y) ↦ x*x + y*y
com sua forma "curryficada",
x ↦ (y ↦ x*x + y*y)
Dado dois argumentos, temos:
((x, y) ↦ x*x + y*y)(5, 2)
= 5*5 + 2*2 = 29
No entanto, usando currying, temos:
((x ↦ (y ↦ x*x +...
tracking img