I'm still quite curious why `with` is not entirely in the body like `cond` 
and `case` and so forth is (ditto with `for`), so it'd be:

```elixir
with do
  %{x: x} <- y
  x
end
```

It follows the pattern of cond and so forth, no weird comma's needed, no 
weird prefix `do:` or so forth, you only need to split on `<-`, etc....


On Tuesday, January 30, 2018 at 5:55:58 AM UTC-7, José Valim wrote:
>
> Good call Ben! The formatter will rewrite it though, while it does keep 
> parens.
>
>
>
> *José Valimwww.plataformatec.com.br 
> <http://www.plataformatec.com.br/>Founder and Director of R&D*
>
> On Tue, Jan 30, 2018 at 1:46 PM, Ben Wilson <benwil...@gmail.com 
> <javascript:>> wrote:
>
>> This is achievable with `\` btw:
>>
>> with \
>>   %{x: x} <- y
>> do
>>   x
>> end
>>
>>
>> On Tuesday, January 30, 2018 at 7:39:07 AM UTC-5, Po Chen wrote:
>>>
>>> Ah I thought `with` was part of the language, then I realized how small 
>>> the language core is.
>>> Now I wish the language is actually a little bigger :S mixed feelings.
>>>
>>> Thanks for the reply!
>>>
>>> On Tuesday, 30 January 2018 23:20:49 UTC+11, José Valim wrote:
>>>>
>>>> Imagine you have this code:
>>>>
>>>>    foo = 1
>>>>    bar = 2
>>>>    foo bar do
>>>>      :ok
>>>>    end
>>>>
>>>> Would you expect it to be equivalent to:
>>>>
>>>>    foo = 1
>>>>    bar = 2
>>>>    foo
>>>>    bar do
>>>>      :ok
>>>>    end
>>>>
>>>> It isn’t because “foo” in its own line is a valid expression. Replace 
>>>> “foo” by “with” and you can see why your proposed syntax doesn’t work.
>>>>
>>>> If you want to write it as you proposed, you need to use parens:
>>>>
>>>>    foo = 1
>>>>    bar = 2
>>>>    foo(
>>>>      bar
>>>>    ) do
>>>>      :ok
>>>>    end
>>>> -- 
>>>>
>>>>
>>>> *José Valimwww.plataformatec.com.br 
>>>> <http://www.plataformatec.com.br/>Founder and Director of R&D*
>>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "elixir-lang-core" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to elixir-lang-co...@googlegroups.com <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/elixir-lang-core/a644c670-f090-4eaf-a0df-fa47333519b8%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/elixir-lang-core/a644c670-f090-4eaf-a0df-fa47333519b8%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/bbf54f61-ffc4-46e3-b69f-5bbc03f0df70%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to