/[guile]/guile/guile-core/lang/elisp/internals/lambda.scm
ViewVC logotype

Diff of /guile/guile-core/lang/elisp/internals/lambda.scm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by ossau, Mon Feb 4 21:13:46 2002 UTC revision 1.2 by ossau, Fri Feb 8 11:50:51 2002 UTC
# Line 67  Line 67 
67                            `(((,> %--num-args ,(+ num-required num-optional))                            `(((,> %--num-args ,(+ num-required num-optional))
68                               (,error "Wrong number of args (too many args)"))))                               (,error "Wrong number of args (too many args)"))))
69                      (else                      (else
70                       (@bind ,(append (map (lambda (i)                       (, @bind ,(append (map (lambda (i)
71                                              (list (list-ref required i)                                                (list (list-ref required i)
72                                                    `(,list-ref %--args ,i)))                                                      `(,list-ref %--args ,i)))
73                                            (iota num-required))                                              (iota num-required))
74                                       (map (lambda (i)                                         (map (lambda (i)
75                                              (let ((i+nr (+ i num-required)))                                                (let ((i+nr (+ i num-required)))
76                                                (list (list-ref optional i)                                                  (list (list-ref optional i)
77                                                      `(,if (,> %--num-args ,i+nr)                                                        `(,if (,> %--num-args ,i+nr)
78                                                            (,list-ref %--args ,i+nr)                                                              (,list-ref %--args ,i+nr)
79                                                            #f))))                                                              ,%nil))))
80                                            (iota num-optional))                                              (iota num-optional))
81                                       (if rest                                         (if rest
82                                           (list (list rest                                             (list (list rest
83                                                       `(,if (,> %--num-args                                                         `(,if (,> %--num-args
84                                                                 ,(+ num-required                                                                   ,(+ num-required
85                                                                     num-optional))                                                                       num-optional))
86                                                             (,list-tail %--args                                                               (,list-tail %--args
87                                                                         ,(+ num-required                                                                           ,(+ num-required
88                                                                             num-optional))                                                                               num-optional))
89                                                             '())))                                                               ,%nil)))
90                                           '()))                                             '()))
91                              ,@(map transformer (cddr exp)))))))))))                                ,@(map transformer (cddr exp)))))))))))
92    
93  (define (set-not-subr! proc boolean)  (define (set-not-subr! proc boolean)
94    (set! (not-subr? proc) boolean))    (set! (not-subr? proc) boolean))
# Line 101  Line 101 
101         (,set-procedure-property! %--lambda (,quote name) (,quote ,name))         (,set-procedure-property! %--lambda (,quote name) (,quote ,name))
102         (,set-not-subr! %--lambda #t)         (,set-not-subr! %--lambda #t)
103         ,@(if is         ,@(if is
104               `((,set! (,interactive-spec %--lambda) (,quote ,is)))               `((,set! (,interactive-specification %--lambda) (,quote ,is)))
105               '())               '())
106         %--lambda)))         %--lambda)))
107    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26