Lua Book
rzed
rzantow at ntelos.net
Tue Mar 2 15:25:56 EST 2004
Pete Shinners <pete at shinners.org> wrote in
news:mailman.28.1078240405.12614.python-list at python.org:
> Cameron Laird wrote:
>> Incidentally, have you heard the news about Lua? Look at
>> <URL: http://www.inf.puc-rio.br/~roberto/book/ >.
>
> I have no experience with Lua, but some of the code examples
> from the book may frighten me away for good.
>
> http://www.inf.puc-rio.br/~roberto/book/code/allwords.lua.html
>
>
>
> I suppose Python's recent introduction of generators makes this
> rather trivial.
>
> def allwords():
> for line in sys.stdin:
> for word in line.split():
> yield word
>
> for word in allwords():
> print word
>
>
>
NameError: global name 'sys' is not defined
The Python version includes trailing punctuation, while the Lua
version filters it out. It becomes a little less trivial to make
the two functionally identical.
It seems that the syntax of Lua can be a little more verbose. On
the other hand, here are two versions of (more or less) the
functional equivalent of the referenced Lua code:
# in Python:
import sys, string
tt = string.maketrans( '`~!@#$%^&*()_-+=:;"\'{[}]|\\?/>.<,',
' ' )
for line in sys.stdin:
line = string.translate( line, tt )
for word in line.split():
print word
-- in Lua:
line = io.read()
while line do
for word in string.gfind(line, "%w+") do
print(word)
end
line = io.read()
end
There are probably better ways to write the code in either
language. I've only been looking at Lua for a couple of hours, so I
can't really comment much about that. But overall, for a comparable
task, it doesn't look too scary.
--
rzed
More information about the Python-list
mailing list