.
1. (- )
2. CONSTANTS- . -, - - , - . < >=<->
3. DOMAINS- - . - - - -. .
4. DATABASE- - ?
5. PREDICATES- . - . - -- - - .
6. CLAUSES- . - -. - - -, - ,- - . -,- - - , -.
-, - - . - - .
7. GOAL- - . -, -, - - , .
, - .
- , - --. - . - , -. - , , . -.
. :
(,).
?-(,)
=.
.
DOMAINS- - . - - - -. .:
domains
i=integer
, *
PREDICATES- . - . - -- - - .:
predicates
mother(string, string).
, -
.
[a,b,c]- - char. []- -. , - - - *
domains
i=integer
predicates
s(i,i) i- .
. , - : [head/tail]
[1,2,3]=[1[2,3]]=[1/2/[3]]
, - - - - , (- ,, -), , - - .: , - (- ). - - :1) - --0. 2)- - , - - - - - , - 1
|
|
length([]-,0)
length(l_/T],l):-length(T,l_T),
l=l_T+1/
goal
length(1[1,2,3],x).
length([x]) x=0
1)T:=[2,3]
2)T:=[3]
3)T:=[]
. -
- - - . : +,-,*, <>,>,<,=
:
domains: i=integer, r=real.
predicates: add(i,i,i) sub(i,i,i) mul(i,i,i) div(i,i,i) fadd(r,r,r) fsub(r,r,r) fmul(r,r,r) fdiv(r,r,r)
clauses: add(x,y,z):-z=x+y. mul(x,y,z):-z=x*y. fadd(x,y,z):-z=x+y. .
goal
add(3,2,z)
-.
- - , - -. - _. : , - .
:
clauses: max(x,y,x):-x>y max(x,y,y):-x<=y
goal:max(3,2,z) max(5,6,z)
- , , , . . !
- . , , - , , - ,, . ,- , - ,- -, - .
:
clauses: max(x,y,x):-x>y,!. max(_,y,y):-x<=y.
goal:max(3,2,z) max(5,6,z)
- -, - ,- .
, - - - .
: -