[erlang-questions] Noob questions: Searching a tree

Hynek Vychodil vychodil.hynek@REDACTED
Tue Dec 9 13:07:43 CET 2008


Look at http://www.erlang.org/doc/reference_manual/expressions.html#guards

comma works as andalso - lazy and
semicolon works as orelse - lazy or

On Tue, Dec 9, 2008 at 12:25 PM, Edward Stow <ed.stow@REDACTED> wrote:

> Hi
>
> Is this a friendly place to ask very simple questions about Erlang and
> functional programming.  I'm learning both at the same time.  For
> example I want to search for a value in the nodes of a tree structure.
>  The tree is simply nested lists.  For example
>
> 6> tut1:search(a, [b, [a]]).
> true
> 7> tut1:search(a, [b, [c]]).
> false
> 8> tut1:search(a, [ [a], b]).
> true
>
> My implementation is: Is this implementation OK or how else would it
> be performed.
>
> -module(tut1).
> -export([search/2]).
>
> %% Search for an element in tree (nested lists)
>
> search(_, []) ->
>    false;
>
> search(A, [A|_]) ->
>    true;
>
> search(A, [H|T]) when list(H), length(H) > 0 ->
>    [H1|T1] = H,
>    search(A, [H1 | [T1 | T]]);
>
> search (A, [_|T]) ->
>    search(A, T).
>
> Question:  I'm not really sure of the semantics of the comma operator
> in the function when clause:
> search(A, [H|T]) when list(H), length(H) > 0 ->
> Can somebody point me towards some relevant documentation.
>
> Thanks
> --
>
> Edward Stow
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://www.erlang.org/mailman/listinfo/erlang-questions
>



-- 
--Hynek (Pichi) Vychodil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20081209/18262f26/attachment.htm>


More information about the erlang-questions mailing list