[erlang-questions] Guards on assignment (i.e. assertions)
Mon Mar 1 21:44:34 CET 2010
Right, that's fine. It's even pretty readable. Though when it fails,
you just get an ambiguous "exception error: no true branch found when
evaluating an if expression", which is why I prefer the case
Both case and if are a bit verbose. A simpler syntax would, I think,
encourage this practice.
On Mon, Mar 1, 2010 at 2:34 PM, David Mercer <> wrote:
> That seems like a legitimate use of the "if" keyword.
> A = if B > C -> B end
> if B > C -> A = B end
>> -----Original Message-----
>> From: [mailto:] On
>> Behalf Of Garrett Smith
>> Sent: Monday, March 01, 2010 2:00 PM
>> To: Erlang Questions
>> Subject: [erlang-questions] Guards on assignment (i.e. assertions)
>> In most cases, assertions come "free" in Erlang in guards and pattern
>> matching. There are cases though where I'd like to apply a guard a
>> statement like this:
>> A = B when B > C
>> I currently do this:
>> A = case B of ValidB when ValidB > C -> ValidB end
>> or, a simpler form (but the error message on failure isn't as clear):
>> A = if B > C -> B end
>> There are other ways as well, e.g. using functions, etc. but I like
>> the first form.
>> I'm wondering how others implement basic assertions on assignments. I
>> think if the first form were supported by the language, I'd use the
>> "assert" pattern and my code would be better for it.
>> erlang-questions (at) erlang.org mailing list.
>> See http://www.erlang.org/faq.html
>> To unsubscribe; mailto:
More information about the erlang-questions