Termy -=-=-=- C Code. C Code Run. Run, Code, RUN! PLEASE!!!! Definice světa v prologu se zkládá z termů. Možná ste si všimli, že i dotazy se vznáší stejným formátem. Není to náhoda - i tyto dotazy jsou termu. Každý term se zkládá ze jména a parametrů v závorce. Tedy například datum(1998,1,1). Termy lze navíc vnořovat. Například i osoba('Adam', 'Novak', datum(1998,1,1)) je term. Na termy lze také nahlížet, jako na grafy: osoba / | \ / | \__ 'Adam' 'Novak' datum / | \ 1998 1 1 Prolog podporuje následující typy termů: - jednoduché objekty - proměné - ty začínají velkým písmenem, nebo podtžítkem - konstanty - atomy - posloupnosti písmen číslic a podtržítka začínající malým písmenem - posloupnosti některých symbolů mimo ( ) ! , ; [ ] | např --> <== <@ atd. - posloupnosti znaků v apostrofech 'ahoj jak se máš' - čísla (1 nebo 1.1) - struktury např datum(1998,1,1). Mají funktor (datum) - to musí být atom a parametry... A to je všechno. Tento formát databáze je dostatečně obecný, aby uložil téměř cokoliv. Dokonce i zápisy podmínek pomocí operátorů :- a čárka jsou termy. :- jsou totiž jenom funktory, které jsou nastaveny tak, že se píšou jako operátory. Tedy zápis neco(A,B) :- jineho(A,C) lze přepsat na :-(neco(A,B),jineho(A,B)). Podobně funguje i matematika. Můžu tak popisovat například výrazy: 3 * x + 4 * y (nebo taky +(*(3,x),*(4,y)) + / \ * * / \ / \ 3 x 4 y Elektrické obvody: par( odpor( r1), sekv( par( odpor(r2), +--r1--------+ kond(c1)), --+ +-r2-+ +--- odpor(r3))) ---+ +-r3-+ +-c1-+ Nebo bludiště pro textovku: %Umístění předmětů location(papir,zachod). % Bludiště connect(zachod,zahrada). connect(zachod,chodba). zachod<--->chodba<--->zahrada connect(chodba,zachod). | ^ connect(zahrada,chodba). +----------------------+ connect(chodba,zahrada). % Popisy pro jednotlivé místnosti describe(papir,'proste toaletak'). describe(zachod,'Jsi na zachode..nelibe to tu voni'). describe(zahrada,'Jsi na zahrade..ptaci zpivaji, slunce sviti...'). describe(chodba,'Jsi na chodbe..vede ze zachodu na zahradu'). výheň