# ln009 - X = b ?- [ a, b ] = X. X = [ a, b ] But: ?- [ a, b...

This preview shows pages 1–5. Sign up to view the full content.

Matching The unification operator: =/2 The expression A=B is true if A and B are terms and unify (look identical) arity ?- a = a. true ?- a = b. false ?- a = X. X = a ?- X = Y. true of Prolog Tutorial online NOTE: This is where Prolog really shines as an AI programming language: Knowledge representation - List Knowledge processing - pattern matching

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Matching Lists – a convenient way to represent abstract concepts Prolog has a special notation for lists. [a] [a,b,c] [ ] Empty List [ bmw, vw, mercedes ] [ chicken, turkey, goose ]
Matching Pattern Matching in Lists ?- [ a, b ] = [ a, X ].

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: X = b ?- [ a, b ] = X. X = [ a, b ] But: ?- [ a, b ] = [ X ]. no The Head-Tail Operator: [H|T] ?- [a,b,c] = [X|Y]; X = a Y = [b,c] ?- [a] = [Q|P]; Q = a P = [ ] Prolog Lists The predicate first/2 : accept a list in the first argument and return the first element of the list in second argument. first(List,E) :- List = [H|T], E = H; Prolog Lists The predicate last/2 : accept a list in the first argument and return the last element of the list in second argument. Recursion : there are always two parts to a recursive definition; the base and the recursive step . last([A],A). last([A|L],E) :- last(L,E)....
View Full Document

## This note was uploaded on 10/03/2011 for the course CSC 592 taught by Professor Staff during the Spring '11 term at Rhode Island.

### Page1 / 5

ln009 - X = b ?- [ a, b ] = X. X = [ a, b ] But: ?- [ a, b...

This preview shows document pages 1 - 5. Sign up to view the full document.

View Full Document
Ask a homework question - tutors are online