small erlang question.

Peter Lund <>
Fri Jan 16 12:10:28 CET 2004


Quite advanced stuff for a beginner!   :))

> Here a few solutions:
>
> With a filter:
>
> case lists:filter(
>        fun(Str) ->
>                0 /= string:str(Text,Str)
>        end,
>        [Str1,Str2,Str3]) of
>     [Str1] ->
>         ... ;
>     [Str2] ->
>         ... ;
>     [Str3] ->
>         ...
> end.
>
> Almost the same, but with a list comprehension:
>
> case [Str || Str <- [Str1,Str2,Str3], string:str(Text,Str)>0] of
>     [Str1] ->
>         ...;
>     [Str2] ->
>         ...;
>     [Str3] ->
>         ...
> end.
>
> But here's my favourite:
>
> Actions = [{Str1,fun(Txt) -> ... end},
>            {Str2,fun(Txt) -> ... end},
>            ...],
> [Fun(Text) || {Str,Fun} <- Actions, string:str(Text,Str)>0].
>
>
> Regards,
>
> Dominic Williams.
>
> ----------------






More information about the erlang-questions mailing list