chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-users] Stupid closure question


From: Jack Trades
Subject: [Chicken-users] Stupid closure question
Date: Tue, 16 Jun 2009 20:38:22 -0400

I'm pretty sure I already know the answer to this, but is there any
way I can create a closure that can be used without 'calling' it?  For
example...

(define (my-list #!rest *args)
  (let ((data *args))
    (define (get) data)
    (define (set a-list) (set! data a-list))
    (define (len) (length data))
    (lambda (#!rest args)
      (if (null? args) (get)
                       (apply (case (car args)
                                    ((set) set)
                                    ((len) len)
                                    (else get))
                              (cdr args))))))

(define a (my-list 1 2 3))
a
===> (1 2 3)
(a 'len)
===> 3


Jack Trades


reply via email to

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