. . - :
X + Y | X Y |
X Y | X Y |
X * Y | X Y |
X / Y | X Y |
X mod Y | X Y |
abs(X) | X |
sqrt(X) | X |
random(X) | 0 1 |
random(Int,X) | 0 Int |
sin(X) | X |
cos(X) | X |
tan(X) | X |
log(X) | (ln) X |
: . , :
=, <, <=, >, >=, <>
. .
1.
.
PREDICATES
Sr (real, real, real)
CLAUSES
Sr (A, B, S):- S = (A+B)/2.
GOAL
Sr (8, 12, S), write (S).
:
2.
PREDICATES
Chet (integer)
CLAUSES
Chet (A): - A mod 2 =0, write (A, - ); Write (A, - ).
GOAL
Chet (18).
:
18
. , , , . . , . , . .
predok
1. X Z, X - Z
predok(X, Z):-roditel(X, Z)
2. X Z, Y, X Y Z.
Predok (X,Z):- roditel (X,Y), predok (Y,Z).
, . , - .
:
DOMAINS
name = string
PREDICATES
roditel (name, name)
predok (name, name)
CLAUSES
roditel (, ).
roditel (, ).
predok (X, Z):- roditel (X, Z).
predok (X, Z):- roditel (X,Y), predok (Y, Z).
GOAL
predok (, ).
:
Yes
.
n! (n-1)! n.
:
1. 0! = 1
fact (0, 1):-!. %
|
|
2. N! = (N-1)!*N.
fact (N, FN):- M=N1, %
fact (M, FM), FN=FM*N.
:
PREDICATES
fact (integer, integer)
CLAUSES
fact (0, 1):-!.
fact (N, FactN):- M=N1, fact (M, FactM), FactN=FactM*N.
GOAL
fact (3, FN), write (3!=, FN).
:
3!=6
:
.3
, . , .
. , , .
:
, : [1, 2, 3]
, : [One, Two, Three]
: []
: [[-1,3,5],[6,4,2,8]]
- , DOMAINS .
< > = < >*
,
DOMAINS
list = <integer>*
. ( ) ( ). .
, [A, B, C] - , , [B,C] -
|, .
[A, B, C] = [A | [B, C] ] = [A | [B | [C] ] ] = [A | [B | [C | [ ] ] ] ]
. .
, .
DOMAINS
list = integer *
PREDICATES
writelist(list)
CLAUSES
writelist ([]).
writelist ([A | Z]):- write (A), nl, writelist (Z).
GOAL
writelist([10, 20, 30, 40]).
:
A , Z