Function matching w/ "abc" ++ Rest

Mats Cronqvist <>
Fri Dec 9 10:48:56 CET 2005


   from the reference manual;
http://erlang.se/doc/doc-5.4.10/doc/reference_manual/expressions.html#6

"When matching strings, the following is a valid pattern:
f("prefix" ++ Str) -> ...
This is syntactic sugar for the equivalent, but harder to read
f([$p,$r,$e,$f,$i,$x | Str]) -> ..."

   note that f("foo" ++ _) works, and is the right choice for this example.

   mats

Peter-Henry Mander wrote:
> Assuming tha code was supposed to read:
> 
> f1("abc" ++ Rest) ->
>  abc;
> f1("def" ++ Rest) ->
>  def;
> 
> You would be better off writing:
> 
> f1([$a,$b,$c|_Rest]) -> abc;
> f1([$d,$e,$f|_Rest]) -> def.
> 
> Pete.



More information about the erlang-questions mailing list