lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


> > What's wrong with Joonas Pihlaja's proposal?
> >
> >  do with f, g = io.open("src.txt","r"), io.open("dst.txt",w")
> >     for l in f:lines() do
> >        ...
> >        g:write(l)
> >     end
> >  end
> >
> > (Probably with a different syntax...)
> >
> 
> 
> I've been using it in metalua for a while (syntax "with <var_list> =
> <values_list> do <scoped_statements> end") for some time, with the
> convention that the protected variables must have a ":close()" disposal
> method, and I'm pretty happy with it.

I do not see why the need for the <scoped_statements>. It would be
simpler to add only a new form of locals. Something like

  local finalized f, g = ...

that calls ":close()" (or __gc??) when it goes out of scope.  Of course,
you can (should?) use a conventional do-end around it:

  do local finalized f, g = ...
    ...
  end

But the do-end is not part of the syntax.

-- Roberto