[eeps] EEP ???: Value-Based Error Handling Mechanisms
Fred Hebert
mononcqc@REDACTED
Wed Oct 3 13:24:21 CEST 2018
On 10/03, Raimo Niskanen wrote:
>
>The use I have in mind for matching 'ok' explicitly is simply that when you
>write your code you know that the return value should be 'ok', and you want
>to guard yourself from future mistakes where you e.g change the called
>function to a not as equivalent as you thought.
>
>Also for the code reader it is nice to know that there is no value
>discarded here, and for the final value that you do not have to look up
>the called function to know that the function you just wrote will only
>return 'ok'.
>
Yes, that's a fair requirement.
>So I am just for basic narrowing of possibilities...
>
>I guess an empty pattern is not possible?
>
> begin
> Whom <~ id({ok,"world"}),
> <~ io:format("Hello, ~p!\n", [Whom])
> end
>
It would be possible. There's a unary '+' and '-' prefix operator, and I
figure it should be possible to declare '<~' both as infix and prefix.
begin
A + B,
+ 5,
A <~ B,
<~ B,
end
It does look a bit odd, but I do not think there is any case where it
would be syntactically or grammatically ambiguous to use.
I think we'd be trading one kind of magic feeling (`_` can be used for
both `{ok, _}` and `ok`) for another one (a unary unbind operator), but
there would certainly be a clearer semantic distinction between `ok` and
`{ok, _}`.
I just hadn't considered keeping the same operator both as infix and
unary, but I'm certainly open to the idea.
What would be left to decide is whether introducing the operator would
replace the currently proposed '_ <~ Exp' matching on 'ok' semantics or
supplement it. I think it would make sense to replace it for that case
wholesale.
>Nono, that, and all the above, are just my personal opinions. Not the
>OTP
>opinion. And that remark was a general one along Adam Lindberg's line
>that I also like the explicitness in Erlang, and this EEP hides the {ok,_}
>and {error,_} patterns, which sacrifices explicitness for convenience.
>
>I think the convenience of the programming pattern that becomes possible
>is really useful, though.
>
>>
>> I'm curious what the next steps are. If the overall feeling is "nice but
>> not nice enough", I'd rather see the EEP rejected than left to linger
>> for many years, as seems to be the case with multiple EEPs in the past,
>> so at least I know where to stand.
>
>I accidentally jumped out of line when answering here...
>
>A few internal meetings are coming up before there can be any OTP opinions.
>
Understood !
More information about the eeps
mailing list