• Nie Znaleziono Wyników

Z m ie n n e w Pr o lo g u

N/A
N/A
Protected

Academic year: 2021

Share "Z m ie n n e w Pr o lo g u"

Copied!
14
0
0

Pełen tekst

(1)

Pr zy k la d y p ro st yc h zd a ´n i ic h re p re ze n ta cj a w Pr o lo g u

Zdaniawyra˙zaj֒acefaktymo˙znazapisa´cjakoklauzulePrologu.Zwr´o´cmyna pocz֒atekuwag֒e,bywszystkieklauzuleby lypisanezma lejlitery.Praktycznejest r´ownie˙zupraszczaniepolskiejfleksji: MamkolegeZdzicha. MamkolegeRycha. Zdzichmaksiazke. ZdzichmaMercedesa. ZdzichmaMariole. ZdzichlubiMercedesa. Rychulubiwino. ZonaRychalubiwino.

kolega_zdzich. kolega_rychu. zdzich_ma_ksiazka. zdzich_ma_mercedes. zdzich_ma_mariola. zdzich_lubi_mercedes. rychu_lubi_wino. zona_rycha_lubi_wino. Prologmo˙zezapami֒eta´ctefakty,anast֒epniepytanyonieodpowietwierdz֒aco, apytanyojakiekolwiekinnefaktyodpowieprzecz ֒aco. ?-kolega_zdzich. yes?-kolega_roman. no Prologpodstawowemechanizmy1 Jednaktenspos´obwyra˙zaniafakt´owposiadaszeregwad.Naprzyk lad, gdyby´smyzapytalioostatnifaktnali´sciewformie:rycha_zona_lubi_wino toPrologniezauwa˙zy lbyzwi֒azkutegofaktuzwcze´sniejwprowadzonym zona_rycha_lubi_wino: ?-zona_rycha_lubi_wino. yes ?-rycha_zona_lubi_wino. no Dlategodowyra˙zaniafakt´owlepieju˙zy´cstruktur: kolega(zdzich). kolega(rychu). ma(zdzich,ksiazka). ma(zdzich,mercedes). ma(zdzich,mariola). lubi(zdzich,mercedes). lubi(rychu,wino). lubi(zona(rychu),wino).

?-kolega(zdzich). yes ?-lubi(X,wino). X=rychu?; X=zona(rychu) yes Prologpodstawowemechanizmy2

S tr u k tu ry i p re d yk a ty

Prologpozwalanawprowadzaniefakt´owstrukturalnych,codajedu˙z֒aswobod֒e. Wkorzystaniuztejswobody,podobniejakzinnychswob´od,wartostosowa´c jednakpewn ֒adyscyplin ֒e,np.: Czyzamiastpisa´ctak: kolega(zdzich). kolega(rychu). ma(zdzich,ksiazka). ma(zdzich,mercedes). ma(zdzich,mariola). lubi(zdzich,mercedes). lubi(rychu,wino). lubi(zona(rychu),wino).

niemogliby´smyr´owniedobrzetak: kolega(zdzich). rychu(kolega). zdzich(ma,ksiazka). mercedes(ma,zdzich). ma(mariola,zdzich). zona(rychu,lubi,wino). zona(rychu,lubi(wino)). lubi(zona(rychu(wino))). lubi(zona,rychu,wino). Odpowied´z:formalnieowszem,praktycznieniebardzo. Prologpodstawowemechanizmy3 Strukturanajwy˙zszegopoziomu(zewn֒etrzna)traktowanajestprzezPrologjako symbolrelacjiwyra˙zaj֒acejjaki´szwi֒azekmi֒edzyjejargumentami. Strukturywewn֒etrzne(mog֒aby´cdowolniezagnie˙zd˙zone)traktowanes֒ajako funkcjeokre´slaj֒aceobiektpozostaj֒acywzale˙zno´sciodinnychobiekt´ow. Zapisrelacjiwyra˙zafaktlogiczny,inazywanyjestpredykatem. Przekszta lcaj ֒acfaktywyra˙zonewnormalnymj ֒ezykunapredykatylogiczne najcz ֒e´scieju˙zywamyorzeczeniazdania(czasownika)jakosymbolupredykatu. Podmiotstajesi֒eargumentempredykatu,podobniejakdope lnienia. Zatempredykatpowinienmie´csta l֒aliczb֒eargument´ow,kt´orepowinnymie´c swojeokre´slonerole,aczkolwiekmog֒aistnie´cpodobnepredykatyzr´o˙zn֒aliczb֒a argument´ow,np.: ma2(kto,co) ma3(kto,co,kiedy) ma4(kto,co,kiedy,gdzie) WPrologutakiepredykatymog֒amie´cjednakow֒anazw֒e,poniewa˙zProlog potrafijeodr´o˙zni´cpoliczbieargument´ow:ma/2,ma/3,ma/4 Prologpodstawowemechanizmy4

(2)

Z m ie n n e w Pr o lo g u

Symboltermurozpoczynaj֒acysi֒ewielk֒aliter֒a(lubpodkre´slnikiem)jest zawszezmienn֒awPrologu.Symbolpredykatuniemo˙zeby´czmienn֒ainiemo˙ze zaczyna´csi ֒ewielk ֒aliter ֒a.Zmiennawaksjomaciejesttraktowanajako kwantyfikowanauniwersalnie,azmiennawzapytaniujakokwantyfikowana egzystencjalnie.Zakresemzmiennychjestca laklauzulawkt´orejwyst ֒epuj ֒a. Zawarto´s´cbazydanych: /*somelikewine*/ likes(ed,wine). likes(wife(ed),wine). /*everyonelikesbeer*/ likes(X,beer). /*dicklikeshismerc*/ likes(dick,mercedes).

Odpowiadanienapytania: ?-likes(X,wine). X=ed?; X=wife(ed) yes ?-likes(ed,X). X=wine?; X=beer yes ?-likes(X,beer),likes(X,mercedes). X=dick?; no Wpierwszychdw´ochzapytaniachzmiennaXjestzaka˙zdymrazeminn ֒a zmienn֒a.Natomiastwtrzecimzapytaniu(opiwieimercedesie),s֒adwa wyst֒apieniatejsamejzmiennejX,wi֒ecmusz֒amie´ct֒esam֒awarto´s´c. Prologpodstawowemechanizmy5

Op e ra to r u n ifi k a cj i

Operatorunifikacji=por´ownujeoperandy.Je´sliobies֒atermamista lymi,zwraca logicznywynikpor´ownania(identyczneczynie).Je´slijedenlubobaoperandys֒a zmiennymi,wtedywynikjestzawszeprawd֒a,zefektemubocznymprzypisania zmiennejsta legooperandu.Gdyobaoperandyby lyzmiennymitopozostaj ֒a nimi,ales ֒azunifikowane,czylimusz ֒amie´cr´own ֒awarto´s´cwprzysz lo´sci. ?-wife(ed)=meg. no ?-wife(ed)=X. X=wife(ed) yes ?-wife(X)=wife(Y). Y=X yes

/*noartihmetic*/ ?-2+3=5. no ?-2+3=X. X=2+3 yes /*donttry*/ ?-father(son(X))=X. Jakwida´cwprzyk ladachpolewejstronie,unifikacjajestelastycznaipor´ownuje wyra˙zeniastrukturalnie,przypisuj֒aczmiennebydopasowa´cwyra˙zenia.Jednak ˙zadneobliczeniaarytmetycznenies ֒awykonywane. Prologpodstawowemechanizmy6

W p ro w a d za n ie fa k t´o w i o d p o w ia d a n ie n a p yt a n ia

Zapisanewpostaciklauzulfaktymo˙znawprowadzi´cdoPrologu,kt´ory przyjmujejejakoaksjomaty,umieszcza(pokolei)wswojejbaziedanych, izaczynawniewierzy´c(bezgranicznie). Mo˙znar´ownie˙zwprowadza´cfakty(wtymsamymformacie,zako´nczonekropk֒a) jakozapytania,nakt´orePrologmaodpowiedzie´c.Wczasienormalnejpracy Prologjestw la´sniewtakimtrybieodpowiadanianapytania.Abywprowadzi´c aksjomatyu˙zywamyspecjalnegopredykatuconsult/1,kt´orywczytujefakty zpodanegopliku,albozwej´scia:consult(user).Pojedynczefaktymo˙zna r´ownie˙zwprowadza´cpredykatamiassertaiassertz(patrzdalej). Prologodpowiadanapytaniaprzezprzeszukiwanieswojejbazydanych, wkolejno´sciwprowadzonychaksjomat´ow,dopasowuj֒acpredykatikolejne argumentyzapytaniadoargument´owaksjomat´ow. Prologpodstawowemechanizmy7 Prologpodstawowemechanizmy8

(3)

P o s l u g iw a n ie si

֒

e g p ro lo g -i e m

gprologjest latwodost֒epnyminterpreteremPrologu.Mo˙znagowywo la´c wtakispos´ob,˙zebyodrazunastarciewczyta lfaktyzawartewokre´slonympliku: >gprolog--init-goal"consult(zdzich2.pro)" compilingzdzich2.proforbytecode... zdzich2.procompiled,10linesread-1004byteswritten,15ms GNUProlog1.2.18 ByDanielDiaz Copyright(C)1999-2004DanielDiaz |?-kolega(zdzich). (1ms)yes ProloginterpreteryPrologu9 gprologposiadaszeregrozszerze´nwodniesieniudostandarduPrologu,jak r´ownie˙zszeregzmiennychkonfiguracyjnych.Naprzyk lad,wprzypadku zapytaniaofakt,kt´oregosymbolpredykatuniejestznany,gprologdomy´slnie generujeb l֒ad. Mo˙znaustawi´cflag֒ekonfiguracyjn֒a,abytakiezapytanieotrzymywa lopoprostu odpowied´znegatywn֒a: |?-jest_fajnie. uncaughtexception:error(existence_error(procedure,jest_fajnie/0),top_level/0) |?-set_prolog_flag(unknown,fail). yes |?-jest_fajnie. no Poniewa˙zset_prolog_flagjestpredykatem(jakwszystkowPrologu),wi֒ec wywo lujesi֒egowtrybiezadawaniapyta´n.Pr´obawprowadzeniagozpliku wtrybieconsultby labyr´ownowa˙znapr´obieprzedefiniowaniapredykatu wbudowanego,cojestniedopuszczalne. ProloginterpreteryPrologu10

S W I Pr o lo g

Podobniemo˙znawywo la´cinnywygodnyinterpreterPrologu—SWIProlog: >pl-fzdzich2.pro %/home/witold/cla/ai/Prolog/zdzich2.procompiled0.00sec,2,768bytes WelcometoSWI-Prolog(Version5.6.6) Copyright(c)1990-2005UniversityofAmsterdam. SWI-PrologcomeswithABSOLUTELYNOWARRANTY.Thisisfreesoftware, andyouarewelcometoredistributeitundercertainconditions. Pleasevisithttp://www.swi-prolog.orgfordetails. Forhelp,use?-help(Topic).or?-apropos(Word). 1?-kolega(X). X=zdzich; X=rychu; No ProloginterpreteryPrologu11

´ C ic ze n ie w

´owlkaprostyfaktgu(zar´zmentamikichadstowruchomjaki´ssyUem,Pwprguloro .aZadajacpytanid´zsprawpoprano´s´cr)weasazbez)zapomocorcu(ltsnou ֒֒ zaw;(´srednika)ieymwy´swtlanieawisu´skldawprowazonychadny.Zapomocch֒ ej´scijakiej´szmienn.toarwichwsztkyshmo˙zliwyc roooglujkilkastzenzwprowadniemdoygw"olPhas lem"prodlooaritutg k lmadoweprograay,np.hni,przyoteujrologu.SkopiPznmalprostaneioez waczonymia´syjzanienmi.ia lzucispr´obujjeurhomi´czgodnie ֒ k l:adprzyNa oologn.worgp/rtn/rhp:/twaw.lew oc_gorlop/ru7se/se20.htmlhjpchttp:~/www./sc./k.ua.mahb reguloroPryterorpteingloP12

(4)

Re g u ly

Opr´oczfakt´owprostych,bezwarunkowych,mo˙zemywyra˙za´cwPrologufakty zawieraj ֒acesp´ojnikimplikacji(wstecznej): lubi(zdzich,X):-lubi(X,wino). Faktytegotypunazywasi֒eregu lami. Prologposzukujeodpowiedzinazadawanepytaniadopasowuj֒acpytaniedo kolejnychfakt´owwbaziedanych.Gdypytaniedopasowujesi֒edofaktuprostego, odpowied´zjestnatychmiastowa.Gdyfaktjestregu l ֒atoPrologpr´obuje dopasowa´cpytaniedojejlewejstrony.Gdybytosi ֒euda lo,Prologwywo lujesi ֒e rekurencyjnie,abyudowodni´cfaktypoprawejstronieregu ly.Sukceswywo lania rekurencyjnegooznaczaodpowied´zpozytywn֒anaoryginalnepytanie. likes(dick,X):-likes(X,wine). likes(dick,mercedes). likes(dick,wine). likes(ed,wine). likes(wife(ed),wine).

?-likes(dick,X). X=dick; X=ed; X=wife(ed); X=mercedes; X=wine. PrologkonstrukcjeProloga13

S p ´o jn ik i i k o n o ta cj e lo g ic zn e

Operator:-wyst ֒epuj ֒acywregu lachmo˙znatraktowa´cjakosp´ojnik,poniewa˙z pozwalaontworzy´cklauzulez lo˙zonezprostych.Wsensielogicznymodpowiada onimplikacjiskierowanejwstecz⇐.Implikacj֒emo˙znastosowa´ctylko wdefinicjachregu l(niewzapytaniach),itotylkoraz. WProloguistniej ֒ajeszczesp´ojnikikoniunkcji∧,zapisywanejprzecinkiem,oraz alternatywylogicznej∨,zapisywanej´srednikiem: ?-ma(zdzich,mercedes),ma(zdzich,alfa_romeo_8c). No ?-ma(zdzich,mercedes);ma(zdzich,alfa_romeo_8c). true Koniunkcj֒eialternatyw֒emo˙znastosowa´ctylkopoprawejstronieregu l (wpoprzednikachimplikacji).Lewastronaregu lymusiby´ctermematomowym. Takiformu lylogiczne,bezalternatyw,albozalternatywamiwy l ֒acznie negatywnychlitera l´ow,alboznajwy˙zejjednymlitera lempozytywnym,nazywa si֒eklauzulamiHorna. Zatemmo˙znastwierdzi´c,˙zePrologoperujejedynieklauzulamiHorna. PrologkonstrukcjeProloga14

W yj a´ sn ie n ie p ro ce d u ra ln e

Wyra˙zaniefakt´owpo l ֒aczonychkoniunkcj ֒ajestr´ownowa˙znezapisywaniutych fakt´owoddzielnie(bazadanychPrologujestjedn ֒awielk ֒akoniunkcj ֒alogiczn ֒a), awi ֒ecniejestdefactopotrzebne.Jednakwyra˙zaniefakt´owpo l ֒aczonych alternatyw֒adajemo˙zliwo´sci,kt´orychniedasi֒ebezalternatywyuzyska´c: ma(zdzich,pieniadze);ma(zdzich,alfa_romeo_8c). Tenfaktwyra˙zawa˙zn ֒aw lasno´s´cpieni ֒edzy:albosi ֒ejetrzyma,albosi ֒eje wydaje.AlejakPrologmia lbykorzysta´cztakiegofaktu,wwyszukiwaniu odpowiedzinazapytanie?Niemo˙zeaniskorzysta´czcz֒e´scipierwszej, iodpowiedzie´c,˙zeZdzichmagot´owk֒e,boniewietegonapewno,anizcz֒e´sci drugiej,ztegosamegopowodu. Takiegoproblemuniema,gdyalternatywawyst֒epujepoprawejstronieregu ly: jest_cool(X):-ma(X,pieniadze);ma(X,alfa_romeo_8c). Abyudowodni´c,˙zekto´sjest ”cool”(ktokolwiek,niekoniecznienaszbohater Zdzich),wystarczysprawdzi´c,˙zemakas֒e,lubalf֒e. Czylimo˙znazapisywa´cteklauzule,zkt´orymiradzisobiealgorytmwyszukiwania. PrologkonstrukcjeProloga15 PrologkonstrukcjeProloga16

(5)

K o n w e rs ja fa k t´o w lo g ic zn yc h d o Pr o lo g u

Rozwa˙zmyproceszamianyfakt´owwyra˙zonychwj֒ezykupredykat´owpierwszego rz ֒edunaklauzulePrologu.Wog´olno´scinale˙zypami ֒eta´c,˙zesta le,funkcje,oraz symbolepredykat´owmusz ֒azaczyna´csi ֒eodma lejlitery,azmienneodwielkiej. PrologkonstrukcjeProloga17 PrologkonstrukcjeProloga18

Ne g a cj a , a m o ˙ze ra cz e j je j b ra k

WProloguniemasp´ojnikanegacji.Jednakistniejewbudowanypredykatnot, kt´oregoznaczeniemo˙znaokre´sli´cjako: ”niedasi ֒eudowodni´c,˙ze...”. Wniekt´orychprzypadkachmo˙znagou˙zywa´cwcharakterzenegacji,aleniekiedy dajeonnieoczekiwanewyniki. Zawarto´s´cbazydanych: man(dick). dog(spot).

?-man(X). X=dick? yes ?-not(man(spot)). yes ?-not(man(X)). no Mo˙znaby lobyoczekiwa´c,˙zePrologznajdzieindywiduum,kt´oreniejest cz lowiekiem. Mo˙znaby lobyoczekiwa´c,˙zeskoroda losi֒eudowodni´cnot(man(spot))totym bardziejpowinnoda´csi֒eudowodni´cnot(man(X)). Jednoidrugieoczekiwaniezawodzi.Mo˙znajedyniewyci ֒agn ֒a´cwniosek,˙zenot jestdziwn֒a,nieintuicyjn֒aform֒aprzeczenia. PrologkonstrukcjeProloga19 Predykatunegacjinotmo˙znau˙zywa´ctylkowzapytaniach,anie wstwierdzeniachzapami֒etywanychwbaziedanych. Wyja´snieniedlaczegotylkotakaformaprzeczeniajestdost֒epnawPrologu pojawisi ֒ep´o´zniej,anaraziemusimyprzyj ֒a´c,˙zeobowi ֒azujemy´slenie pozytywne,istaramysi ֒enicnienegowa´c. Jednakzwr´o´cmyuwag֒e,˙zesamPrologjestna ladowanymy´sleniem negatywnym,bozaprzeczawszystkiemu,coniejestdlaniegooczywistepo sprawdzeniuswojejbazydanych.T֒ew lasno´s´c,negowaniawszystkiegoconie jestjawnieznane,nazywasi֒eza lo˙zeniem´swiatazamkni֒etego (Closed-WorldAssumption,CWA). WwieluinterpreterachPrologupredykatnotniewyst֒epujejakotaki.Zamiast niegojestdost֒epnyoperator\+otakimsamymdzia laniu. PrologkonstrukcjeProloga20

(6)

Ob li cz e n ia n a st ru k tu ra ch

ToconazywamywPrologustruktur֒a,czylizapispredykatuzargumentami, mo˙znatraktowa´cjakostruktur ֒edanych,ibudowa´czichu˙zyciemobliczenia. Rozwa˙zamynast֒epuj֒ac֒aarytmetyk֒e,gdziewprowadzamyliczbyzapomoc֒a symboluzeroistrukturys(X),kt´oraoznaczanast֒epnik(nast֒epn֒aliczb֒epo) X.Jesttotzw.arytmetykaPeano.Naprzyk lad,liczb֒e5zapisujemywpostaci: s(s(s(s(s(zero))))).Chcemyzdefiniowa´cdodawaniezapomoc֒apredykatu dodaj(Skl1,Skl2,Suma)prawdziwegozawsze,gdySumajestsum ֒a podanychdw´ochsk ladnik´ow,ifa lszywegowpozosta lychprzypadkach: suma(zero,Skl2,Skl2). suma(s(X),Skl2,s(Suma)):-suma(X,Skl2,Suma). Abyprowadzi´cobliczeniawtejarytmetycemusimypos lugiwa´csi ֒enotacj ֒a nast֒epnik´ow,np.˙zebyobliczy´c3+4: ?-suma(s(s(s(zero))),s(s(s(s(zero)))),X). X=s(s(s(s(s(s(s(zero))))))) Zdefiniowaniemno˙zeniawymagatroch֒ewi֒ecejzachodu,spr´obuj! Prologtypoweschematy21 Prologtypoweschematy22

Ob li cz e n ia ” w st e cz ”

Zauwa˙zmy,˙zewzdefiniowanympredykaciesumadwapierwszeargumenty stanowi ֒adane,atrzeciargumentstanowiwynikoblicze´n.Jesttak,podobniejak winnychj ֒ezykachprogramowania,wkt´orychfunkcjemog ֒amie´cargumenty typu ”out”izwraca´cwnichwyniki.Podobnie,jakwtychinnychj ֒ezykach ”funkcja”niejestdok ladniefunkcj֒awsensiematematycznym,takwPrologu predykatniejestdok ladniepredykatemwsensielogicznym. JednakPrologniemamechanizmudeklarowania,kt´oryargumentjesttypu ”out”,zatemcobysi ֒esta lo,gdyby´smyzamiastzadawa´cprostepytaniatypu 3+4=?zacz ֒elizadawa´cr´ownaniadorozwi ֒azania,typu3+?=4: ?-suma(s(s(s(zero))),X,s(s(s(s(zero))))). X=s(zero); No Dobrze,jedynymrozwi ֒azaniempowy˙zszegor´ownaniajests(zero),inic innego.Tazdolno´s´cdoprowadzeniaoblicze´n ”wstecz”jestefektemubocznym prologowegoalgorytmuprzeszukiwaniabazydanychidopasowywaniawzorc´ow. Prologtypoweschematy23 Oczywi´sciemo˙zemyposun֒a´csi֒edalej,izada´cpytanie,nakt´oreodpowied´znie jestjednoznaczna:?+?=4.Uzyskamywszystkierozk ladyliczby4nask ladniki: ?-suma(X,Y,s(s(s(s(zero))))). X=zero Y=s(s(s(s(zero)))); X=s(zero) Y=s(s(s(zero))); X=s(s(zero)) Y=s(s(zero)); X=s(s(s(zero))) Y=s(zero); X=s(s(s(s(zero)))) Y=zero; No Maj֒aczdefiniowanemno˙zeniemogliby´smydokonywa´cfaktoryzacjiliczb,anawet wyci ֒aga´cpierwiastki!Spr´obuj. Prologtypoweschematy24

(7)

Pr aw d zi w e li cz b y

Prologpotrafipos lugiwa´csi֒eprawdziwymiliczbami,por´ownywa´cje,ioblicza´c wyra˙zenialiczbowe,cho´ctoostatnierobiniech ֒etnie.Sprawd´zmyto, wykorzystuj ֒acoperatorpor´ownania=. ?-0=0. Yes ?-0=1. No ?-2+2=4. No ?-2+2=X. X=2+2 Yes Prologobliczenialiczbowe25 Prologuwa˙za,˙zejegopodstawowymzadaniemjestprzeszukiwaniebazydanych idopasowywanieterm´ow,inieb֒edziezawraca lsobieg lowyobliczaniem warto´sci,gdykt´ory´szterm´owjestwyra˙zeniemliczbowym.Zakl֒eciem,kt´ore zmuszaPrologdowykonaniaoblicze´njestoperatoris,kt´oryobliczawyra˙zenie poprawejstronieipodstawia(lubpor´ownuje)podzmienn ֒apolewejstronie: rowna_sie2(X,Y):-X1isX,X1=Y. Mamyterazwynikidobre: ?-rowna_sie(2+2,4). Yes ?-rowna_sie(2+2,X). X=4

aler´ownie˙znadalnieakceptowalne,albob l ֒edy: ?-rowna_sie(2+2,2+2). No ?-rowna_sie(X,2+2). ERROR:(user://4:136): is/2:Argumentsarenotsufficientlyinstantiated Pora˙zkawpierwszymprzyk ladziepoprawejwynikaznieobliczeniadrugiego argumentu.Jednakjakpokazujeostatniprzyk lad,obliczeniaprowadzoneprzez isnietoleruj֒aniepodstawionegoargumentupoprawejstronie,zatemismusi by´cstosowaneostro˙znie,pozbadaniupostaciposiadanychargument´ow:czys֒a warto´sciami,czywyra˙zeniami,czypodstawione,czynie.Prologposiadaszereg mechanizm´owdosprawdzaniatejpostaci(patrzdalej). Prologobliczenialiczbowe26

Op e ra to ry in fi k so w e

ZasadniczoPrologstosujezapisformu l(zwanychstrukturami)wnotacji funkcyjnej,czylisymboloperacjiilistaargument´owwnawiasachokr ֒ag lych, oddzielonychprzecinkami.Jestjednakdopuszczalneu˙zyciesk ladni operatorowej,czyliargumentyrozdzielone,poprzedzone,lubpoprzedzaj֒ace symboloperatora,beznawias´owaniprzecink´ow.Prologdopuszczazapis: a+bjakor´ownowa˙zn֒aalternatyw֒ezapisu:+(a,b) Wyra˙zeniates ֒aca lkowicier´ownowa˙zne,awr ֒eczidentyczne,poniewa˙zto pierwszetraktowanejestjakopewnadodatkowaformazapisu,ikonwertowane dopostacipoprawejwczasieparsowaniaprzezProlog. Operatorytegotypujak+mo˙znar´ownie˙zdefiniowa´cwprogramach,copozwala napos lugiwaniesi ֒edowolnymisymbolamioperator´ow.Naprzyk ladmo˙zemy wprowadzi´csymbolprefiksowegounarnegominusa(lubprzeczenia)orazsymbol infiksowegooperatorapot֒egowania: ?-op(9,fx,~)./*operatorminus(unarny)*/ ?-op(10,yfx,^)./*operatorpotegowania*/ Wtedyka˙zdewyra˙zeniepostacia^bb֒edzieprzezPrologkonwertowanedo postaci^(a,b)iobliczanezgodniezistniej֒acymidefinicjamipredykatu^ Prologobliczenialiczbowe27 Prologobliczenialiczbowe28

Cytaty

Powiązane dokumenty

Na przełomie grudnia i stycznia mieszkańcy Dziećkowic będą mogli się podłączyć do kanalizacji.. Cena za odprow adzenie ścieków do miejskiej kanalizacji ma być

• zestaw 5 etykiet dla produktów: ESSENS Home Clean Multi-Purpose Cleaner, ESSENS Home Clean Glass Cleaner, ESSENS Home Clean Kitchen Cleaner, ESSENS Home Clean Bathroom

Etap ten jest dosyć skomplikowany, ponieważ wymaga bardzo szczegółowej analizy konkretnego procesu spedycyjnego pod względem ryzyka związanego z innymi zdarzeniami;.. - pom

Warto przy tym wskazać, że OECD rekomenduje, aby w nowych umowach o unikaniu podwójnego opodatkowania zawieranych po 2005 roku państwa strony uregulowały kwestię

W tym kontekście należy dążyć do zapewnienia ochrony interesów konsumenta, z jednoczesnym eliminowaniem powstających zagrożeń, czego wyrazem jest dyrektywa

pcje ko a licji rządowej. Najistotniej szą kwestią jest zapewnienie praw dziwej samodzielności państwa. Dziś nie trudno małemu państewku stać się obiektem a

T proletariackie, aby mogły one 'v 5Wym zwartym szyku wcielić bojo- rewolucyjne tradycje i cele klasy Robotniczej, jako całości.. W przeciwstawieniu do innych

posługiwania się dwoma odmianami językowymi, które mają różny prestiż (umownie określany jako ‘wysoki’ i ‘niski’) i są używane w różnych sytuacjach i sferach życia