Fwd: declarative syntax
[
Date Prev][
Date Next][
Thread Prev][
Thread Next]
[
Date Index]
[
Thread Index]
- Subject: Fwd: declarative syntax
- From: Asko Kauppi <asko.kauppi@...>
- Date: Mon, 8 Mar 2004 09:42:08 +0200
Really out of my field ;) but.. just a though:
if not X:fulfills{ in_database, need_data } then
get_and_put_in_database (X)
end
This way, you wouldn't need to duplicate the 'X' for each test
function. If their prototypes are the same, the 'fulfills' function can
call them one by one.
-ak
Edelleenlähetetyn viestin alku:
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