-
Notifications
You must be signed in to change notification settings - Fork 0
/
aula7-listas.pl
75 lines (43 loc) · 982 Bytes
/
aula7-listas.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
%Listas
/*
[]. vazia
[X] pelo menos um elemento
[X|Y]. cabeca e calda
[X,Y]. lista existem exatamente dois elementos
[X, Y|Z].
[[X,Y], [Z,K]] Elementos da lista e tem dois valores
*/
compra([ananas, banana, manga, pera, uva]).
nomes([ana, bela, carla, dina, fefa]).
inserir(X,Y,[X|Y]).
/*
- CONSULTAS
Retorna a cabeça e a calda da lista de compras
compra([X|Y]).
Retorna a cabeça e calda da lista de nomes
nomes([X|Y]).
Só a cabeca
nomes([X|_]).
Lista sem cabeca
nomes([_|Y]).
- INSERÇÕES
inserção de elemento na lista retornando em L
inserir(humb,[avers,lover,jungs],L).
lista na cabeca com um array retornando em L
inserir([a,c,v,b,a,s,d],[avers,lover,jungs],L).
*/
/*
CONCATENANDO LISTAS
con([1,2], [3,4], L).
con(L1, L2, [3,4,5,6,7,8,9]).
*/
con([], L, L).
con([X|L1], L2, [X|L3]) :- con(L1, L2, L3).
/*
TAMANHO LISTA
tamanho([a,b,c,x,a,s,f,s], Tamanho).
*/
tamanho([], 0).
tamanho([X|Y], N) :-
tamanho(Y,T),
N is T + 1.