[erlang-questions] missing function

Edward Stow <>
Tue Dec 23 20:09:48 CET 2008


2008/12/23 Maxim Treskin <>:
> Hello
>
> I can't find standard function which returns position of element in list
> like:
>
> num(El, List) ->
>     num(El, List, 1).
>
> num(_, [], _) -> {error, not_found};
> num(El, [H|T], Acc) ->
>     case H of
>         El -> Acc;
>         _ -> num(El, T, Acc+1)
>     end.

Hi,  I'm new to Erlang and FP and would like to ask why or when you
would prefer to use case expressions rather than function pattern
matching such as

indexOf(_,[],_) -> {error, not_found};

indexOf(El, [El | _], Index) -> Index;

indexOf(El, [_| T], Index) -> indexOf(El, T, Index + 1).

Intuitively I prefer the separate pattern matches as each match is
dealing with one case.

Does an idiom guide exist for Erlang / FP along the lines of Kent
Beck's 'Smalltalk Best Practice Patterns' ?

Thanks

-- 

Edward Stow



More information about the erlang-questions mailing list