Uma calculadora prática de lambda

Um lambda-calculadora prático é uma calculadora lambda com comandos e atalhos convenientes.
Baixe Agora

Uma calculadora prática de lambda Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Public Domain
  • Preço:
  • FREE
  • Nome do editor:
  • Oleg
  • Site do editor:
  • http://pobox.com/~oleg/ftp/Computation/lambda-calc.html

Uma calculadora prática de lambda Tag


Uma calculadora prática de lambda Descrição

Uma calculadora lambda prática é uma calculadora lambda com comandos e atalhos convenientes. Um prático calculadora de lambda é um avaliador de pedido normal para o Cálculo-Cálculo não encaixado, estendido com comandos convenientes e atalhos para fazer programação nele mais produtivo .Chuts são constantes distintos que representam termos. Comandos Definir novos atalhos, ativar o rastreamento de todas as reduções, compare os termos Modulo Alpha-Conversão, imprima todos os atalhos definidos e sinalizadores de avaliação, etc.terms para avaliar e os comandos são inseridos em um prompt de Leite-Eval-Print-Loop (RESP) " ou "Incluído" de um arquivo por um comando especial. Um ramo de Haskell é uma incorporação da calculadora lambda (como linguagem específica de domínio) em Haskell. A calculadora pode ser usada interativamente dentro de abraços ou GHCI. A calculadora atual implementa o que parece ser um algoritmo eficiente e elegante de reduções de ordem normal. O algoritmo é "mais funcional" do que a abordagem tradicionalmente usada. O algoritmo parece idêntico ao empregado por YACC Sans, uma diferença crítica. A calculadora também assume uma abordagem mais "funcional" para a higiene de substituições beta, que é alcançada pela coloração de identificadores, onde absolutamente necessários. Essa abordagem é "mais funcional" porque evita um contador global ou o rosqueamento do balde de tinta durante todo o processo. A integração da calculadora com Haskell permite-nos armazenar termos em variáveis e facilmente e intuitivamente combiná-los. A receita tradicional para reduções de ordem normal inclui uma frase desagradável "cozinhar até ser feito". A frase torna necessário acompanhar as tentativas de redução e implica um algoritmo iterativo feio. Estamos propondo o que parece ser uma técnica eficiente e elegante que pode ser implementada através de regras de reescrita intuitivas. Nossa calculadora, como YACC, possui uma pilha e funciona fazendo uma seqüência de deslocamento e reduzem as etapas. A única diferença significativa do Yacc é que a calculadora de lambda "repara" o resultado após a etapa de redução bem-sucedida. A fonte e as linguagens alvo do nosso "analisador" (calculadora de lambda) são as mesmas; Portanto, o analisador pode realmente se aplicar. A pilha de análise pode ser feita implícita. Nesse caso, o algoritmo pode ser usado para normalização de termos de lambda digitados no final. Os exemplos a seguir mostram que o Lambda-Cálculo se torna um idioma específico de domínio incorporado em Haskell:> C0 = f ^ x ^ x - Numeral da igreja 0 > succ = c ^ f ^ x ^ f # (c # f # x) - sucessor> c1 = eval $ suck # c0 - pré-avaliar outros numerais> c2 = eval $ succ # c1> c3 = eval $ succ # C2> C4 = eval $ succ # C3it é realmente conveniente para armazenar termos nas variáveis de Haskell e pré-avaliar (ou seja, normalizar) eles. Eles são de fato termos. Podemos sempre pedir ao intérprete para mostrar o termo. Por exemplo, mostre os rendimentos C4 (f. (X. F (f (f (f x))))))). deixe mul = a ^ b ^ f ^ a # (b # f) - Multiplicação Evalar $ mul # C1 ---> (b. b), a função de identidade eval $ mul # c0 ---> (b. f. (x. x))), que é "const 0" são resultados algébricos: multiplicando qualquer número por zero sempre dá zero. Podemos ver como lambda-cálculo pode ser útil para o teorema provando, mesmo em fórmulas quantificadas universalmente. A calculadora implementa a sugestão do Dr. Fairbairn para limitar a profundidade de termos impressos. Isto torna possível avaliar e imprimir alguns termos divergentes (os chamados termos da cauda-divergente): lambda_calc> permite y_comb = f ^ ((p ^ p # p) # (c # c))) em eval $ y_comb # cc (c (c (c (c (c (c (c (c (c (c (c)))))))))) é incrível como bem lambda-cálculo e haskell joga juntos.


Uma calculadora prática de lambda Software Relacionado

PORTÃO

Simulações de varreduras pré-clínicas e clínicas na tomografia em emissão ...

419

Download

Remitt.

Remitt é a transmissão e a transmissão de informações médicas eletrônicas. ...

208

Download

Klusters.

Klusters é uma aplicação gráfica poderosa e fácil de usar para classificação de espinhos de gravações neuronais extracelulares. ...

242

Download