Lua Book

Roberto Ierusalimschy roberto at
Wed Mar 3 13:37:33 CET 2004

> Provocative comparison; perhaps Roberto will even join in
> and comment here.

As I was invited, I will give a few short comments:

>I suppose Python's recent introduction of generators makes this rather

You should read the book. There you would learn that Lua offers
coroutines (the real ones). With them, you can write a generator quite
similar to the piece you wrote:

  function allwords ()
    return coroutine.wrap(function ()
             for line in io.lines() do
               for word in string.gfind(line, "%w+") do

  for word in allwords() do

You can also write it in a Ruby-iterator style (using anonymous
functions instead of blocks):

  function allwords (yield)
    for line in io.lines() do
      for word in string.gfind(line, "%w+") do

  -- usage example
  local count = 0
  allwords(function (word) count = count + 1 end)
  print("number of words: " .. count)

> The full text [of the book] was available on the net

Please notice that the text available on the net is an old version; it
is quite different from the final book.

> having finished the book I was left feeling that the core language
> offered nothing useful over Python, in fact it was rather lacking
> in many areas. [...] it's unlikely to ever come close to Python for
> general purpose coding.

This is a sensible opinion. (And apparently well based, as you read the
book :) Lua and Python have different goals; and different people have
different opinions.

-- Roberto

More information about the Python-list mailing list