Professionella som är involverade i programvaruutveckling bör följa den potentiella kapaciteten hos funktionell logik programmering, eftersom det är ett framväxande programmeringsparadigm som erbjuder nya sätt att utveckla programvara. Funktionell logik programmering stöder specifikation, prototypering och programprogrammering inom ett enda språk. Det är grunden för ett praktiskt och praktiskt tillvägagångssätt för att producera programvara av hög kvalitet. Funktionell logik programmering är terse men ändå tydlig, stöder snabb utveckling genom att undvika vissa tråkiga uppgifter, och gör det möjligt att stegvis förbättra effektiviteten. Det gör programmering roligt utan att offra pålitlighet. ILLUstratIon by daVId BollInger gamate dem till ett enda språk. Funktionella logikspråk kombinerar funktionerna i båda paradigmerna på ett konservativt sätt. Program som inte använder funktionerna i ett paradigm beter sig som program i det andra paradigmet. Förutom bekvämligheten av att använda funktionerna i båda paradigmerna inom ett enda språk, kombinationen har ytterligare fördelar. Till exempel leder den efterfrågestyrda utvärderingen av funktionell programmering som tillämpas på icke-deterministiska operationer för logisk programmering till effektivare sökstrategier. Arbetet med att utveckla språk som är avsedda att uppnå detta mål har lett till omfattande forskning som sträcker sig över två decennier (se Hanus 22 för en nyligen genomförd undersökning). Dessa resultat ses över här. Den konkreta syntaxen av exemplen är Curry, 27 men utformningen av koden och de flesta av våra överväganden om programmen är giltiga för något annat funktionellt logiskt språk, till exempel, TOY, 30 baserat på minskning för funktionell utvärdering och på förträngning för momentiation av obundna logiska variabler. En gemensam egenskap hos funktionella och logiska språk är skillnaden mellan datakonstruktörer och definierade operationer. Denna åtskillnad är också nödvändig för att funktionella logiska språk ska kunna stödja någorlunda effektiva genomförandemekanismer. Data konstruktörer bygga de data som ligger till grund för en applikation, medan definierade operationer manipulera data. Till exempel, Sanna och falska konstruktion (är) Booleska värden. Ett enkelt exempel på en mer komplex datastruktur är en lista över värden. Vi betecknar med [] den tomma listan och med (x:xs) en icke-tomma lista där x är det första elementet och xs är listan över återstående element. Vi skapar längre listor genom inbäddade tillämpningar av konstruktörer: (1:(2:(3:[])) betecknar en lista med element 1, 2 och 3. Eftersom listorna är allmänt förekommande på deklarativa språk, tillhandahålls vanligtvis syntaktiskt socker för att underlätta skrivlistor, vilket gör att [1, 2, 3] förkortar den tidigare listans struktur. En annan egenskap som är gemensam för många funktionella och logiska språk är definitionen av operationer genom mönstermatchning. Funktionerna specificeras av olika ekvationer för olika argumentvärden. Till exempel, en funktion, "++", returnera konkatetering av två inmatningslistor definieras enligt följande Generativ konstnär och programmerare David Bollinger använder matematik och algoritmer för att skapa konstverk. Illustrationerna i denna artikel återspeglar n-enhetens kuber rekursivt uppdelade på grundval av mönster som definieras av den största gemensamma divisorn bland koordinataxlarna.
Funktionell logisk programmering REF är en strategi för denna integration.
Functional logic programming
{'venue': 'CACM', 'journal': None, 'mag_field_of_study': ['Computer Science']}