Download presentation

Presentation is loading. Please wait.

Published byTyrone Avon Modified over 3 years ago

1
Chapter 3: Lists, Operators, Arithmetic Part 1

2
Outline Representation of lists Some operations in lists Operator notation Arithmetic

3
Representation of lists

4
The list is a simple data structure. A list is a sequence of any number of items. e.g. ann, tennis, tom, skiing written in prolog as: [ann, tennis, tom, skiing]

5
Representation of lists How can a list be represented as a standard Prolog object? There are 2 cases: 1.list is empty : written as Prolog atom, []. 2.list is non-empty : it will consist two things: The first item, called Head. The remaining part of list, called Tail

6
Representation of lists For example: [ann, tennis, tom, skiing] The head is : ann The tail is the list : [tennis, tom, skiing] The head can be any Prolog object The tail has to be list

7
Representation of lists The head and the tail can be combined into a structure by a special functor..(Head,Tail) The tail is a list, it is either empty or it has its own head and tail. The previous list can be represented as the term:.(ann,.(tennis,.(tom,.(skiing, []))))

8
Representation of lists ann tennis tom [ ] skiing

9
Representation of lists ?- List1=[a,b,c], List2=.(a,b,c). List1= [a,b,c] List2=[a,b,c] ?- Hobbies1=.(tennis,.(reading,[])), Hobbies2=[skiing,food], L=[ann,Hobbies1,tom,Hobbies2]. Hobbies1=[tennis,reading] Hobbies2=[skiing,food] L=[ann,[tennis,reading],tom,[skiing,food]]

10
Representation of lists The element of a list can be object of any kind; it can be also list e.g. L= [a,b,c] can be written as: and Tail=[b,c] and then L=.(a, Tail) To express it in the square bracket notation we can use vertical bar that separate the head and tail: L=[a|Tail] Alternative ways of writing the list L are: [a,b,c]=[a|[b,c]]=[a,b|[c]]=[a,b,c|[]]

11
Some operations on lists 1.Membership 2.Concatenation 3.Adding an item 4.Deleting an item

12
Some operations on lists member(X,L) where X is an object and L is a list member(X,L) is true if X occurs in L e.g. member(b, [a,b,c]) true member(b, [a,[b,c]]) false member([b,c], [a,[b,c]]) true Definition of member: X is a member of L if either: (1)X is the head of L, or (2)X is a member of the tail of L. member(X,[X|Tail]). member(X,[Head|Tail]):- member(X,Tail).

13
A list is a finite sequence of elements Examples of lists in Prolog: [mia, vincent, jules, yolanda] [mia, robber(honeybunny), X, 2, mia] [ ] [mia, [vincent, jules], [butch, friend(butch)]] [[ ], dead(z), [2, [b,c]], [ ], Z, [2, [b,c]]] summary

14
List elements are enclosed in square brackets The length of a list is the number of elements it has All sorts of Prolog terms can be elements of a list There is a special list: the empty list [ ]

15
summary Head and Tail A non-empty list can be thought of as consisting of two parts The head The tail The head is the first item in the list The tail is everything else The tail is the list that remains when we take the first element away The tail of a list is always a list

16
Class exercise (1) What does Prolog answer the following member(tea,[tea,coffee,juce]). member(milk,[tea,coffee,juce]). Using a vertical bar notation, create a list L with a head a and Tail = [c,d,c]

17
Answers: ?- member(tea,[tea,coffee,juce]). true ; ?- member(milk,[tea,coffee,juce]). false. ?- Tail=[c,d,e], L=[a|Tail]. Tail = [c, d, e], L = [a, c, d, e]

Similar presentations

OK

© Patrick Blackburn, Johan Bos & Kristina Striegnitz Lecture 9: A closer look at terms Theory –Introduce the == predicate –Take a closer look at term structure.

© Patrick Blackburn, Johan Bos & Kristina Striegnitz Lecture 9: A closer look at terms Theory –Introduce the == predicate –Take a closer look at term structure.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on microsoft word 2003 Ppt on operation research introduction Ppt on modern periodic table for class 10 Download ppt on conventional and non conventional sources of energy Ppt on latest technology in mechanical engineering Ppt on wind power plant Download ppt on turbo generator Ppt on channels of distribution in china Powerpoint ppt on spinal injuries Ppt on high level languages examples