[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Interpreter Sessions (Newbie)
From: |
dskr |
Subject: |
Re: Interpreter Sessions (Newbie) |
Date: |
Sat, 22 Feb 2003 17:26:28 -0500 |
Pedro,
I do a similar thing.
The easy part -- seperate domains for each user:
(define interpreter-module (make-module))
(define result (eval (+ 1 2 3) interpreter-module))
The hard part -- storing and loading that environment.
Guile will let you get the symbols defined in a module (which you
could then save)
example:
(define module-get-matching-symbol-list (lambda (m r)
"accept a module <m> and regexp <r> and return a list of symbols
which match"
(define cr (make-regexp r))
(define little-helper (lambda (l acc)
(if (eq? l '())
acc
(if (regexp-exec cr (object->string (car (car l))))
; the symbol name matched
(little-helper (cdr l) (cons (car l) acc))
; the symbol name didn't match
(little-helper (cdr l) acc)
)
)
))
(define mgms-helper (lambda (l acc)
(if (eq? l '())
acc
(if (eq? (car l) '())
(mgms-helper (cdr l) acc)
(mgms-helper (cdr l) (little-helper (car l) acc))
)
)
))
(mgms-helper (array->list (module-obarray m)) '())
))
Regards,
Dan Ridge
On Saturday, Feb 22, 2003, at 12:03 US/Eastern, Pedro Ortega wrote:
This has problably been asked before many times. Sorry,
but I didn't find anything in the Guile user manual about
this.
I'm currently programming a Chatbot, wich does execute
Scheme code to produce the answer, triggered by an input
string (something like A.L.I.C.E.). The Chatbot is server
based, so what I need is:
1. Given an user id, create (if it doesn't exist) or
restore the environment (using a database or another
persistent storage media).
2. Execute the Scheme code with the environment, in order
to get the response string.
3. Respond to the user.
4. Save the updated environment.
This hasn't to be accomplished in parallel, querys can be
put in a queue and be responded serially.
Thanks for your help.
Pedro Ortega
IA Department,
University of Chile
_______________________________________________
Guile-user mailing list
address@hidden
http://mail.gnu.org/mailman/listinfo/guile-user