A função Lambda é igual à de Ator? Como isso pode ser explicado?

5
Algumas vezes eu li (de um livro) que conceitualmente a função Lambda é similar ao Ator.

No entanto, sou claro sobre o conceito e aprecio qualquer percepção ou explicação para isso.

Se eles são de fato semelhantes como? Se não há alguma relação entre os conceitos?

    
por Eonil 20.02.2011 / 19:03
fonte

2 respostas

5

Normalmente, a 'função lambda' não é diferente de uma 'função regular'; 'lambda' é apenas uma maneira sintática de definir rapidamente uma função anônima no local. Se uma função normal for um Ator em seu livro, o lambda também.

As funções na maioria das linguagens são fechamentos, isto é, se eles se referem a alguns objetos 'externos', eles continuam se referindo a eles e podem armazenar estados neles, se eles forem mutáveis. Isso pode ajudar uma função / ator a "designar o comportamento a ser usado para a próxima mensagem que receber". Uma função pura é incapaz disso, é claro.

As funções geralmente podem retornar qualquer tipo de objeto, para que possam retornar os novos atores que criarem. Assim, mesmo uma função pura pode "enviar mensagens" e "criar atores", retornando-as. Uma função impura pode apenas enviar mensagens e criar objetos.

Lambda calculus , como o artigo da wikipedia observa, não é adequado para o modelo típico de ator, porque é puro e não pode compartilhar o estado. Mas o modelo de ator pode ser implementado com funções principalmente puras, como o modelo de ator de Erlang mostra .

>     
por 20.02.2011 / 21:02
fonte
2

Comunicação de processos sequenciais descreve o uso de funções (puras) para modelar processos. O CSP é muito parecido com os atores (mas veja aqui como eles não são idênticos): um processo é uma função que pega alguma entrada e retorna outra função descrevendo seu próximo comportamento. Atores se parecem muito com o CSP: um ator pega uma mensagem e retorna outro ator descrevendo seu próximo comportamento.

    
por 21.02.2011 / 11:57
fonte