Qual é o estado da arte na pesquisa encapsulada em programação lógica funcional?

8

Estou particularmente interessado em soluções para o problema que a pesquisa encapsulada pode depender da ordem da avaliação.

De acordo com [1], a pesquisa encapsulada no PAKCS depende da ordem da avaliação, enquanto no MCC, não, mas seu uso requer conhecimento da implementação do compilador e não segue a especificação da linguagem Curry. Isso foi escrito em 2007, portanto pode estar desatualizado agora.

O KiCS2 retorna resultados da pesquisa encapsulada na mônada IO, mas não entendo o porquê.

[1] Braßel e Huch, sobre uma integração mais estreita da programação funcional e lógica , Proc. APLAS 2007

Robin Green
fonte

Respostas:

1

As razões para o uso da mônada de IO parecem ser descritas em Braßel e Huch e Hanus, 2004, mas não consigo encontrar uma razão clara para o uso de uma lista em vez de um conjunto. Eu acho que é assim que a lista pode ser elaborada preguiçosamente.

Parece que a abordagem descrita no artigo de 2007 foi insatisfatória por algum motivo (não sei por que), porque o KiCS2 voltou à "API" descrita no artigo de 2004, ou seja, usando a mônada de IO. (Existe uma versão não segura que não usa a mônada de IO, mas que não é referencialmente transparente!)

Robin Green
fonte
quanto à lista versus conjunto, acredito que eles mencionaram que às vezes retornam vários conjuntos.
precisa
1

Consulte http://www-ps.informatik.uni-kiel.de/kics2/lib/Findall.html : diz que a IOabordagem baseada está obsoleta e a maneira preferida não é o SetFunctionsmódulo de Curry . Esse novo design elimina os IOvalores de retorno empacotados e tem outros meios para evitar vazamento de indeterminismo e não-transparência referencial na terra pura do FP.

Erik Kaplun
fonte
Eu removi uma discussão sobre como citar corretamente os recursos aqui. Vamos continuar no chat , que é a plataforma mais apropriada.
Raphael