chicken-users
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]