[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-users] enumerating symbols
From: |
felix |
Subject: |
[Chicken-users] enumerating symbols |
Date: |
Mon, 19 Apr 2004 09:22:40 +0200 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 |
Here is a simple procedure that returns all interned symbols:
(define oblist
(let ([find-symbol-table (foreign-lambda c-pointer "C_find_symbol_table"
c-string)]
[enum-symbols! (foreign-lambda scheme-object "C_enumerate_symbols"
c-pointer scheme-object)] )
(lambda ()
(let ([it (cons -1 '())]
[ns (find-symbol-table ".")] )
(let loop ([lst '()])
(let ([s (enum-symbols! ns it)])
(if s
(loop (cons s lst))
lst) ) ) ) ) ) )
(tested with Chicken 1.40)
cheers,
felix
- [Chicken-users] enumerating symbols,
felix <=