Qual è lo stato dell'arte nella ricerca incapsulata nella programmazione logica funzionale?


8

Sono particolarmente interessato a soluzioni al problema che la ricerca incapsulata può dipendere dall'ordine di valutazione.

Secondo [1], la ricerca incapsulata in PAKCS dipende dall'ordine di valutazione, mentre in MCC non lo fa, ma il suo utilizzo richiede la conoscenza dell'implementazione del compilatore e non segue le specifiche del linguaggio Curry. Questo è stato scritto nel 2007, quindi potrebbe ovviamente non essere aggiornato ora.

KiCS2 restituisce risultati dalla ricerca incapsulata nella monade IO, ma non capisco perché.

[1] Braßel e Huch, su una più stretta integrazione di programmazione funzionale e logica , proc. APLAS 2007

Risposte:


1

Le ragioni per usare la monade IO sembrano essere descritte in Braßel, Huch e Hanus, 2004, ma non riesco a trovare un chiaro motivo dato per usare un elenco invece di un set. Immagino che sia così che l'elenco possa essere elaborato pigramente.

Sembra che l'approccio descritto nel documento del 2007 sia stato insoddisfacente per qualche motivo (non so perché), perché KiCS2 è tornato alla "API" descritta nel documento del 2004, cioè usando la monade IO. (Esiste una versione non sicura che non utilizza la monade IO, ma che non è referenzialmente trasparente!)


per quanto riguarda list-vs-set, credo che abbiano menzionato che a volte restituiscono multiset.
Erik Kaplun,

1

Vedi http://www-ps.informatik.uni-kiel.de/kics2/lib/Findall.html : dice che l' IOapproccio basato è deprecato e il modo prefferred non è il SetFunctionsmodulo di Curry , Questo nuovo design IOelimina i valori di ritorno avvolti e ha altri mezzi per evitare la perdita di indeterminismo e non trasparenza referenziale nella terra del PQ puro.


Ho rimosso una discussione su come citare correttamente le risorse qui. Continuiamo nella chat , che è la piattaforma più appropriata.
Raffaello
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.