Lähettäjä: Johann Hibschman <jhibschman@yahoo.com>
Päiväys: maanantai, 08. maaliskuuta 2004 04:10:43 +0200
Vastaanottaja: lua list <lua@bazar2.conectiva.com.br>
Aihe: declarative syntax
Vastaus: Lua list <lua@bazar2.conectiva.com.br>
Has anyone thought much about doing declarative-style, logic-like
programming in Lua? I know the syntax is supposedly good for such
things, but has anyone actually done a backward-chaining engine for
Lua?
I want to put together a usable declarative syntax for database and
filesystem updates, something where I can merge 'primitive' tests,
like:
function last_modified (f) ... end -- get the last-modified date
function in_database (rec) ... end -- check the database
with rules for actions
if not in_database (X) and need_data (X) then
get_and_put_in_database (X)
end
and statements of the state of the world
need_data_for_all {June, July, August, September}
and so on.
I can handle writing your basic horribly-inefficient backward-chaining
engine. I'd have to look up those silly predicate logic terms, but
everything is small enough that half-remembered stuff from Intro to AI
should be good enough.
What I am having problems with is figuring out how to write those "if"
rules in a way that is pretty and readable enough to make the project
worthwhile.
Any suggestions?
-Johann