Skip to content
This repository has been archived by the owner on Sep 24, 2023. It is now read-only.
/ mLisa Public archive

Lisp production-rule system (LISA - Lisp-based Intelligent Software Agent) modified for JSCL A fork of http://lisa.sourceforge.net/ v3.2

License

Notifications You must be signed in to change notification settings

vlad-km/mLisa

Repository files navigation

mLisa

Lisp production-rule system (LISA) modified for JSCL.

A fork of http://lisa.sourceforge.net/. Fossil Lisp code, ancient as mammoth's shit

Compilation only under web-repl (platform Electron)

(setq bin #())
(load "00-prelude.lisp" :hook bin)
(load "01-utils.lisp" :hook bin)
(load "02-belief.lisp" :hook bin)
(load "03-reflect.lisp" :hook bin)
(load "04-core.lisp" :hook bin)
(load "05-rete.lisp" :hook bin)
(load "06-config.lisp" :hook bin :output "lisa.js")

Will be bundle js-code "lisa.js".

Compilation "lisa.js" look at https://github.com/vlad-km/mLisa/releases v0.1-alpha First iteration

Use with browser

File jscl.html:

    <script src="lisa.js" type="text/javascript"></script>
    <script src="jscl-web.js" type="text/javascript"></script>
(deftemplate hobbit () 
    (slot name) (slot age))

(defrule r-1 ()
     (hobbit (name ?name) (age ?age))
=>
 (format t "Spawn hobbit ~a ~a ~%" ?name ?age))

(defrule r-2 ()
    (hobbit (name gendalf) (age 100))
=>
 (format t "Spawn wizard, ancient as mammoth's shit~%"))

(assert> (hobbit (name frodo)(age 30)))
(assert> (hobbit (name bilbo)(age 50)))
(assert> (hobbit (name gendalf)(age 100)))
  • General view general view

What's next

Read original documentation. Have a fun.

As is, without any guarantees or obligations

About

Lisp production-rule system (LISA - Lisp-based Intelligent Software Agent) modified for JSCL A fork of http://lisa.sourceforge.net/ v3.2

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published