[erlang-questions] Orelse and andalso as short-hand for case
greim
greim@REDACTED
Tue Jul 24 09:38:08 CEST 2018
Am 23.07.2018 um 16:28 schrieb Ivan Uemlianin:
> Yes, same here. Anything clever but unreadable I would put in an
> informatively-named function. I might call this print_unless_undefined/1.
>
yep, now we are going in the right direction, that is self explaining!
Markus
> Ivan
>
>
> On 23/07/2018 15:16, Dmitry Kolesnikov wrote:
>> This is a clear case for Option data type…
>>
>> I would prefer to use explicit definition of a function that is able
>> to handle undefined values
>>
>> ```
>> print(undefined) ->
>> undefined;
>> print(Msg) ->
>> io:format("Message: ~s~n", [Msg]).
>> ```
>>
>> Alternatively, there is a parse transforms for composition of
>> maybe/option types
>> (https://github.com/fogfish/datum/blob/master/doc/category.md#option)
>>
>> Long time ago, I’ve used andalso syntax but it never stays longer at
>> code repository due to readability. It has been refactored to
>> function(s) with guards or pattern match.
>>
>> Best Regards,
>> Dmitry
>>
>>
>>> On 23 Jul 2018, at 16.32, Dmitry Belyaev <be.dmitry@REDACTED
>>> <mailto:be.dmitry@REDACTED>> wrote:
>>>
>>> How does it mess with types? The andalso and orelse operators should
>>> only care about the type of the first operand and it always is boolean.
>>>
>>> I personally don't like list comprehension as brackets create
>>> additional noise and might not be obvious to other developers.
>>>
>>> Also dialyzer may complain about unused value in either of ways, so
>>> the cleanest is probably case or if. The latter in Elixir doesn't
>>> require else branch which reduces noise a little bit.
>>>
>>> On 23 July 2018 21:05:37 GMT+10:00, Jesper Louis Andersen
>>> <jesper.louis.andersen@REDACTED
>>> <mailto:jesper.louis.andersen@REDACTED>> wrote:
>>>
>>> On Sun, Jul 22, 2018 at 9:09 PM Jachym Holecek
>>> <freza@REDACTED <mailto:freza@REDACTED>> wrote:
>>>
>>> # Viktor Söderqvist 2018-07-22:
>>> >
>>> > Msg /= undefined andalso io:format("Message: ~s~n", [Msg]),
>>> >
>>> > I this good or bad style?
>>>
>>> It is horrible style. Pain to read, pain to modify, pain to
>>> reason about.
>>>
>>> Simple clear question deserves a simple clear answer. :-)
>>>
>>>
>>> I don't like the style either, mostly because it messes with the
>>> types. andalso and orelse expects boolean expressions, but the
>>> style used breaks that format. However, something like
>>>
>>> [x || Msg /= undefined]
>>>
>>> doesn't.
>>>
>>>
>>> --
>>> Kind regards,
>>> Dmitry Belyaev
>>> _______________________________________________
>>> erlang-questions mailing list
>>> erlang-questions@REDACTED <mailto:erlang-questions@REDACTED>
>>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>>
>>
>> _______________________________________________
>> erlang-questions mailing list
>> erlang-questions@REDACTED
>> http://erlang.org/mailman/listinfo/erlang-questions
>
> --
> ============================================================
> Ivan A. Uemlianin PhD
> Llaisdy
>
> Ymchwil a Datblygu Technoleg Lleferydd
> Speech Technology Research and Development
>
> ivan@REDACTED
> @llaisdy
> llaisdy.wordpress.com
> github.com/llaisdy
> www.linkedin.com/in/ivanuemlianin
>
> festina lente
> ============================================================
>
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
More information about the erlang-questions
mailing list