Pattern matching - O que é? Onde vive? Do que se alimenta? Como se reproduz?
1. Pattern matching
O que é? Onde vive?
Do que se alimenta? Como se reproduz?
por Dickson S. Guedes
v1.0
2. esta palestra foi prática e simulou um jogo
interagindo com os participantes…
faltou muito para ser uma palestra completa sobre
pattern matching…
uma segunda parte desta palestra pode ser
apresentada, aprofundando-se mais sobre diversas
estruturas de dados...
só depende de vocês :)
35. lista são escritas assim:
lista = [1, 2, 3, 4, 5]
lista tem uma cabeça e uma calda, então
na lista acima
cabeça (ou head) é o número 1
calda (ou tail) é a lista [2, 3, 4, 5]
vendo de outro jeito head e tail:
[1, 2, 3, 4, 5]
36. na prática se eu faço:
lista = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
[ head | tail ] = lista
então:
head é 1 # apenas um número
tail é [2, 3, 4, 5, 6, 7, 8, 9, 0] # uma lista
vendo de outro jeito head e tail:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
37. lista = [1, 2, 3, 4, 5]
[ head | tail ] = lista
head é 1 e tail é [2, 3, 4, 5]
[ head | tail ] = tail
head é 2 e tail é [3, 4, 5]
[ head | tail ] = tail
head é 3 e tail é [4, 5]
[ head | tail ] = tail
head é 4 e tail é [5]
Para não
ter dúvida!
38. Se tail é [5], ao executar:
[ head | tail ] = tail
o que acontece?
39. Nada de erro, head é 5 e tail é []
Depois disto, ao executar:
[ head | tail ] = tail
o que acontece?
40. lista = [1, 2, 3, 4, 5]
[ head, second | tail ] = lista
head é ?
second é ?
tail é ?
Para não
ter dúvida
mesmo!
41. lista = [1, 2, 3, 4, 5]
[ head, second | tail ] = lista
head é 1
second é 2
tail é [3, 4, 5]
Para não
ter dúvida
mesmo!