% $Id: deleteall.erl,v 1.1 2013/11/06 01:38:19 leavens Exp leavens $ -module(deleteall). -export([deleteall/2,delete/2]). -spec deleteall(Ls::[T], Elem::T) -> [T]. % deleteall removes all occurrences of Elem from Ls. % This coding illustrates multiple uses of the same pattern variable. deleteall([],_Elem) -> []; deleteall([Elem|Tail],Elem) -> deleteall(Tail,Elem); deleteall([Head|Tail],Elem) -> [Head|deleteall(Tail,Elem)]. -spec delete(Ls::[T], Elem::T) -> [T]. % delete also removes all occurrences of Elem from Ls. % This illustrates the use of an if-expression. delete([],_Elem) -> []; delete([Head|Tail],Elem) -> if Head =:= Elem -> delete(Tail,Elem); true -> [Head|delete(Tail,Elem)] end.