Erlang - Pattern Matching

I pattern hanno lo stesso aspetto dei termini: possono essere semplici letterali come atomi e numeri, composti come tuple ed elenchi o una combinazione di entrambi. Possono anche contenere variabili, che sono stringhe alfanumeriche che iniziano con una lettera maiuscola o un trattino basso. Una speciale "variabile anonima", _ (il trattino basso) viene utilizzata quando non ti interessa il valore da abbinare e non lo utilizzerai.

Un modello corrisponde se ha la stessa "forma" del termine a cui viene fatto corrispondere e gli atomi incontrati sono gli stessi. Ad esempio, le seguenti corrispondenze hanno esito positivo:

  • B = 1.
  • 2 = 2.
  • {ok, C} = {ok, 40}.
  • [H | T] = [1, 2, 3,4].

Si noti che nel quarto esempio, la barra verticale (|) indica l'inizio e la coda dell'elenco come descritto in Termini. Notare inoltre che il lato sinistro deve corrispondere al lato destro, il che è normale per i modelli.

I seguenti esempi di corrispondenza dei modelli falliranno.

  • 1 = 2.
  • {ok, A} = {fallimento, "Non so la domanda"}.
  • [H | T] = [].

Nel caso dell'operatore di corrispondenza del modello, un errore genera un errore e il processo termina. Il modo in cui questo può essere intrappolato e gestito è trattato in Errori. I modelli vengono utilizzati per selezionare quale clausola di una funzione verrà eseguita.