Changeset 35852 in project


Ignore:
Timestamp:
07/12/18 16:25:49 (4 months ago)
Author:
juergen
Message:

basic-sequences 2.2 fixed a bugfix

Location:
release/4/basic-sequences
Files:
2 edited
3 copied

Legend:

Unmodified
Added
Removed
  • release/4/basic-sequences/tags/2.2/basic-sequences.scm

    r35850 r35852  
    7272           #f #t))))
    7373
    74 (define (tagged-vector? xpr)
    75   (and (vector? xpr)
    76        (fx>= (vector-length xpr) 1)
    77        (let ((top (vector-ref xpr 0)))
    78          (condition-case (and (thunk? top)
    79                               (keyword? (top)))
    80            ((exn sequence) #t)))))
    81 
    82 (define (tagged-vector kw . args)
    83   (let ((result (make-vector (1+ (length args)))))
    84     (vector-set! result 0 (thunk kw))
    85     (do ((args args (cdr args))
    86          (k 1 (1+ k)))
    87       ((null? args) result)
    88       (vector-set! result k (car args)))))
     74(define-values (tagged-vector tagged-vector?)
     75  (let ((type (gensym 'tagged-vector)))
     76    (values
     77      (lambda (kw . args)
     78        (let ((result (make-vector (1+ (length args)))))
     79          (vector-set! result 0 (thunk (values kw type)))
     80                       ;0
     81                       ;(lambda ()
     82                       ;  (values kw type)))
     83          (do ((args args (cdr args))
     84               (k 1 (1+ k)))
     85            ((null? args) result)
     86            (vector-set! result k (car args)))))
     87      (lambda (xpr)
     88        (and (vector? xpr)
     89             (fx>= (vector-length xpr) 1)
     90             (let ((top (vector-ref xpr 0)))
     91               (if (thunk? top)
     92                 (condition-case
     93                   (receive (key sym) (top)
     94                     (and (keyword? key)
     95                          (symbol? sym)
     96                          (eq? sym type)))
     97                   ((exn) #f))
     98                 #f)))))))
    8999
    90100(define (tagged-vector-ref tv k)
  • release/4/basic-sequences/tags/2.2/basic-sequences.setup

    r35850 r35852  
    77 'basic-sequences
    88 '("basic-sequences.so" "basic-sequences.import.so")
    9  '((version "2.1")))
     9 '((version "2.2")))
  • release/4/basic-sequences/trunk/basic-sequences.scm

    r35850 r35852  
    7272           #f #t))))
    7373
    74 (define (tagged-vector? xpr)
    75   (and (vector? xpr)
    76        (fx>= (vector-length xpr) 1)
    77        (let ((top (vector-ref xpr 0)))
    78          (condition-case (and (thunk? top)
    79                               (keyword? (top)))
    80            ((exn sequence) #t)))))
    81 
    82 (define (tagged-vector kw . args)
    83   (let ((result (make-vector (1+ (length args)))))
    84     (vector-set! result 0 (thunk kw))
    85     (do ((args args (cdr args))
    86          (k 1 (1+ k)))
    87       ((null? args) result)
    88       (vector-set! result k (car args)))))
     74(define-values (tagged-vector tagged-vector?)
     75  (let ((type (gensym 'tagged-vector)))
     76    (values
     77      (lambda (kw . args)
     78        (let ((result (make-vector (1+ (length args)))))
     79          (vector-set! result 0 (thunk (values kw type)))
     80                       ;0
     81                       ;(lambda ()
     82                       ;  (values kw type)))
     83          (do ((args args (cdr args))
     84               (k 1 (1+ k)))
     85            ((null? args) result)
     86            (vector-set! result k (car args)))))
     87      (lambda (xpr)
     88        (and (vector? xpr)
     89             (fx>= (vector-length xpr) 1)
     90             (let ((top (vector-ref xpr 0)))
     91               (if (thunk? top)
     92                 (condition-case
     93                   (receive (key sym) (top)
     94                     (and (keyword? key)
     95                          (symbol? sym)
     96                          (eq? sym type)))
     97                   ((exn) #f))
     98                 #f)))))))
    8999
    90100(define (tagged-vector-ref tv k)
  • release/4/basic-sequences/trunk/basic-sequences.setup

    r35850 r35852  
    77 'basic-sequences
    88 '("basic-sequences.so" "basic-sequences.import.so")
    9  '((version "2.1")))
     9 '((version "2.2")))
Note: See TracChangeset for help on using the changeset viewer.