Hai 2 possibilità:
codice:sum([]) = 0 sum([H|T]) = H + sum(T)è pseudo-codice:codice:sum'([], A) = A sum'([H|T], A) = sum'(T, H+A) sum(L) = sum'(L, 0)
[] -> lista vuota
[H|T] -> H:Head, T:Tail
A -> Accumulator
function(parameter_1, parameter_2, ..., parameter_n) -> parameter rappresenta un caso (un po' come lo switch in C o il pattern matching nei linguaggi funzionali)