Download presentation

Presentation is loading. Please wait.

Published byCraig Axtell Modified over 2 years ago

1
Chapter Three: Lists, Operators, Arithmetic CS 461

2
3.2 Some operations on lists 1.Concatenation 2.Adding an item 3.Deleting an item

3
Concatenation conc(L1,L2,L3) L1 and L2 are two lists and L3 is their concatenation. conc([a,b],[c,d],[a,b,c,d]) True conc([a,b],[c,d],[a,b,a,c,d]) False

4
Concatenation (cont.) Definition of conc: empty (1)If the first argument is empty, then the second and third arguments must be the same list conc([],L,L). non-empty list (2)If the first argument of conc is non-empty list, then it has a head and tail and must look like this [X|L1] the result of concatenation of L1 and L2 is the list [X|L3] where L3 is the concatenation of L1 and L2 conc([X|L1],L2,[X|L3]):- conc(L1,L2,L3).

5
5 2. Concatenation (Example) conc([],L,L). conc([X|L1],L2,[X|L3]):- conc(L1,L2,L3). ?- conc([a,b,c],[1,2,3],L) L= [a,b,c,1,2,3] ?-conc([a,[b,c],d],[a,[],b],L) L = [a, [b, c], d, a, [], b].

6
6 2. Concatenation (Example) conc([],L,L). conc([X|L1],L2,[X|L3]):- conc(L1,L2,L3). ?- conc(L1,L2,[a,b,c]) (decompose) L1 = [], L2 = [a, b, c] ; L1 = [a], L2 = [b, c] ; L1 = [a, b], L2 = [c] ; L1 = [a, b, c], L2 = [] ;

7
7 2. Concatenation (Example) conc([],L,L). conc([X|L1],L2,[X|L3]):- conc(L1,L2,L3). ?-conc(Before,[may|After], [jan,feb,mar,apr,may,jun,jul,aug,sep,oct,n ov,dec]). Before = [jan, feb, mar, apr], After = [jun, jul, aug, sep, oct, nov, dec] How can we find the months that precedes and follows a given month in a list ?

8
Class exercise (1) conc([],L,L). conc([X|L1],L2,[X|L3]):- conc(L1,L2,L3). Write a goal, using conc, to delete the last three elements from the list L producing another list L1. HINT : L is a concatenating of L1 and another three elements list

9
Answer: ?- L = [1,2,3,4,5], conc(L1,[_,_,_],L). L = [1, 2, 3, 4, 5], L1 = [1, 2]

10
10 Concatenation Definition of member using conc: We can program the membership relation using conc: member1(X,L):- conc(L1,[X|L2],L). X is a member of list L if L can be decopmosed into two lists so that the second one has X as its head. member1(X,L):- conc(_,[X|_],L). member1(X,L):- conc(L1,[X|L2],L). member1(X,L):- conc(_,[X|_],L). ?- member1( b,[a,b,c]).

11
11 Adding an item Simply to put an item in front of a list: [X|L] Definition of add: The procedure can be written explicitly as the fact: add(X,L,[X,L]). Example ?-add(z,[a,b,c],NewList).

12
Delete an item Deleting an item X from list L, can be programmed as a relation: Del(X,L,L1). Where L1 is equal to L with the item X removed.

13
Delete an item The del definition : We have two cases : 1)If X is the head of the list, then the result after deletion will be the tail of the list. del(X,[X|Tail], Tail). 2) If X is in the tail then it is deleted from there: del(X,[X|Tail], Tail). del(X, [Y|Tail], Tail1) :- del(X, Tail, Tail1).

14
14 2. Deletion (Example) del(X,[X|Tail], Tail). del(X, [Y|Tail], Tail1) :- del(X, Tail, Tail1). ?- del(a,[a,b,a,a],L). L = [b, a, a] ; L = [a] ; L = [] ;

Similar presentations

OK

1 Chapter 10 Various Topics User defined Types Enumerated Types Type Casting Syntactic Sugar Type Coercion.

1 Chapter 10 Various Topics User defined Types Enumerated Types Type Casting Syntactic Sugar Type Coercion.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on cse related topics such The brain anatomy and physiology ppt on cells Ppt on media revolution software Ppt on teamviewer 9 Ppt on online shopping project in php Ppt on story of human evolution Ppt on power diode ppt Ppt on the origin of the universe Ppt on fine dining etiquette Ppt on vehicle chassis