Spis treści

Lista 2 (Lic.)

1

append( X, X, Y ).
 
member( X, [a,b,c,d] ), delete( [a,b,c,d], X , [a,c,d] ).
 
append( [a,b,c] , X, [a,b,c,d,e] ).

2

even( [] ):-!. % to jest odcięcie, nie było tego jeszcze na wykładzie, ale działa tak, że prolog nie próbuje już dopasować innej reguły jak ta będzie ok.
even( [] ). % ewentualnie to, jak nie chcecie sie wyróżniać z tłumu, stosować tylko jeden z podanych ;p
even( [_,_|T ):-even( T ).
 
palindrom( X ):- reverse( X , X ). %nie jestem pewien, czy nie ma lepszego rozwiazania
 
singleton( [_] ).

3

head( H, [H|_] ).
 
last( X, [X] ):-!.%tak jak wyżej
last( X, [_|T ):-last(X,T).
 
tail( T, [_|T]).
 
init( [], [_] ):-!.
init( [H|I], [H|L] ):-init( I, L ).
 
prefix( [], _ ):-!.
prefix( [H|P], [H|L] ):-prefix( P, L ).
 
sufix( X, X ):-!.
sufix( S, [H|L]):- sufix( S, L ).

4

sublist( [], [] ):-!.
sublist( [H|T], [H|W] ):-sublist( T, W ).
sublist( [_|T], W ):-sublist( T, W ).

5

perm( [], [] ):-!.
perm( X , [Y|W] ):- member( Y, X ), delete( X, Y, XLESS ),perm( XLESS, W ).

6

perm( [], [] ):-!.
perm( [H|T], X ):- perm( T, W ), insert( H, W, X ).
 
insert( E, [], [E]):-!.
insert( E, W, [E|W] ).
insert( E, [H|W], [H|X] ):-insert(E,W,X).
 
programowanie/lista2l.txt · ostatnio zmienione: 2010/03/08 22:38 przez shajen
 
Wszystkie treści w tym wiki, którym nie przyporządkowano licencji, podlegają licencji:MIT License
Recent changes RSS feed