Funktionell logisk programmering och probabilistisk programmering har visat på de stora fördelarna med att kombinera lathet (icke-strikt utvärdering med delning av resultaten) med icke-determinism. Men dessa fördelar utnyttjas sällan i funktionell programmering, eftersom de befintliga funktionerna för icke-strikthet, delning och icke-determinism i funktionella språk är svåra att kombinera. Vi presenterar ett praktiskt sätt att skriva rent funktionella lata icke-deterministiska program som är effektiva och iögonfallande. Vi uppnår detta mål genom att inbädda programmen i befintliga språk (som Haskell, SML och OCaml) med högkvalitativa implementeringar, genom att göra val lat och representera data med icke-deterministiska komponenter, genom att arbeta med anpassade monadiska datatyper och sökstrategier, och genom att tillhandahålla ekvationella lagar för programmeraren att resonera om deras kod.
Fischer m.fl. I REF presenterades ett effektivt genomförande av icke-strikthet, delning och icke-determinism som är inbäddat i ett rent funktionellt språk, såsom Haskell.
Purely functional lazy non-deterministic programming
{'venue': 'ICFP', 'journal': None, 'mag_field_of_study': ['Computer Science']}