[erlang-questions] Re: Using match in guards

Michael Truog <>
Wed Dec 23 01:28:25 CET 2009


Despite the death of the thread, I must correct myself and say
"erlang:tuple_size/1 and erlang:element/2" since erlang:length/1 is for
lists.  I assume tuple_size/1 is O(1)... have not checked the code, but
with a length 2 tuple it doesn't really matter anyway :-)


Michael Truog wrote:
> You would need to use erlang:length/1 and erlang:element/2 to get this
> logic in a guard.  Keep in mind that erlang:length/1 is the only guard
> function that is O(N), the others are O(1).
>
>
> caio ariede wrote:
>   
>> Just correcting my example:
>>
>> search(S) when S = {regex, _} ->
>> ...
>>
>> Caio Ariede
>> http://caioariede.com/
>>
>>
>>
>> On Mon, Dec 21, 2009 at 9:01 PM, caio ariede <> wrote:
>>   
>>     
>>> In function guards we can use functions like is_string/1 and is_number/1.
>>>
>>> But I'm needing to check a generic type defined by {type, Value} but
>>> *in guards* like this:
>>>
>>> search(S) when N = {regex, _} ->
>>> ...
>>>
>>> I know that I can do that with search(S = {regex, _}), but my example
>>> was only for representing the problem.
>>>
>>> The main question is: there is a way for using match in guards? Or
>>> something like this?
>>>
>>> Caio Ariede
>>> http://caioariede.com/
>>>
>>>     
>>>       
>> ________________________________________________________________
>> erlang-questions mailing list. See http://www.erlang.org/faq.html
>> erlang-questions (at) erlang.org
>>
>>
>>   
>>     
>
>
> ________________________________________________________________
> erlang-questions mailing list. See http://www.erlang.org/faq.html
> erlang-questions (at) erlang.org
>
>
>   



More information about the erlang-questions mailing list