Es una manera de acceder a los campos de una estructura de datos y obtener los valores
Un patrón matchea sobre un registro cuando coincide en su largo, etiqueta, y características.
declare EsVacio L
proc {EsVacio L}
case L of H|T then
{Browse 'No'}
else
{Browse 'Si'}
end
end
L = nil
{EsVacio L} % SiEl pattern matching trata de asignar la variable al patrón. Si es posible hacerlo, entonces el patrón coincide.
declare L H T
L = [10 20 30] % 10|20|30|nil
L = H|T
{Browse H} % 10
{Browse T} % [20, 30]Esto puede ser utilizado para, por ejemplo, calcular el largo de una lista
declare Largo L Res
fun {Largo L}
case L of H|T then
{Largo T} + 1
else
0
end
end
L = [10 20 30]
Res = {Largo L}
{Browse Res} % 3También pueden utilizarse múltiples patrones
declare EsVacio L1 L2 L3
fun {EsVacio L}
case L of H|T then
{Browse 'No'}
[] nil then
{Browse 'Si'}
else
{Browse 'No es una lista'}
end
end
L1=[10]
L2=nil
L3=10
{EsVacio L1} % No
{EsVacio L2} % Si
{EsVacio L3} % No es una lista