On Monday, 28 April 2014 17:06:37 UTC+1, Simon Byrne wrote:
>
> My own perspective is that this is due to two reasons
>
> 1) `do` is the only (non-macro) construction that rewrites expressions i.e.
>
> open("outfile", "w") do f
>   write(f, data)
> end
>
> does not (directly at least) call the method `open("outfile", "w")`
>

Also, the fact that rewriting occurs due to a term that appears *after* a 
completed expression I think adds to the confusion. Perhaps this would be 
less confusing if some indicator had to appear before the `open` statement. 
For example, we could have a macro:

@do open("outfile", "w") f begin
  write(f, data)
end

Though I admit that this is somewhat messier.

Reply via email to