Re: New EEP draft: Pinning operator ^ in patterns
"Michael P." <[email protected]>
| Newsgroups | gmane.comp.lang.erlang.general |
|---|---|
| Message-ID | <20210129215217.096a9816@aesop> |
On Fri, 29 Jan 2021 08:23:45 +0900 zxq9 <[email protected]> wrote: > On 2021/01/29 7:31, Michael P. wrote: > > Scoping is easy: > > > > Every pattern, apart from LHS `=`, opens a new scope. > ...except for the most common pattern matching situation of all: `case` Fool! (I! not you!) > Not having anonymous function heads and list comprehension iterators > follow the way patterns work in case is jarring and probably the main How do ppl react to these "sneak-exports"? Like those one-armed bandits: if you get one in each, you do not have to return it but it's a give-away. (Whether you want it or not!) > One Scope To Rule Them All is the cognitively consistent approach > because closures exist. Call me Mr Stupid / Call me Mr Wrong / Call me insane, but I had lines like these cooking in a draft for months, wanted to try it when this all started: ```Kiwi format What = (fun If() when A >= B -> A ; If() when A < B -> B end)(), Selector = 2, Switch = {4, 5}, Case = (fun Case({Check, Pay}) when Check >= Selector -> {Check, Check - Pay} ; Case({Check, Pay}) when Check < Selector -> -1 end)(Switch). ``` Ash fun thrakatulûk agh closure-ishi krimpatul. -- [looked this up, not that mad ;-] ~M -- Reasonable is that which cannot be criticised reasonably anymore. Vernüftig ist das, was nicht mehr vernünftig kritisiert werden kann.