Changeset 14154 in project


Ignore:
Timestamp:
04/07/09 16:07:37 (11 years ago)
Author:
Kon Lovett
Message:

Save.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • release/4/srfi-45/trunk/srfi-45.scm

    r14153 r14154  
    148148               (let ((top-box (%promise-box-ref top)))
    149149
    150                  ; Eager, lazy, r5rs or actual results
     150                 ; Could be eager, lazy, r5rs or actual results
    151151                 (when (%eq? lazy-tag (%promise-box-tag top-box))
    152152
    153153                   ; Another promise?
    154                    (let ((value1 (and (= 1 (length value*)) (%car value*))))
     154                   (let ((promise (and (= 1 (length value*)) (%car value*))))
    155155
    156156                     ; Copy the enclosed promise to the top
    157                      (let ((promise-box (%promise-box-ref value1)))
     157                     (let ((promise-box (%promise-box-ref promise)))
    158158                        (%promise-box-tag-set! top-box (%promise-box-tag promise-box))
    159159                        (%promise-box-value-set! top-box (%promise-box-value promise-box))
    160                         (%promise-box-set! value1 top-box) )
    161 
    162                      #;
    163                      (if (%lazy-promise? value1)
    164 
    165                          ; then copy the enclosed promise to the top
    166                          (let ((promise-box (%promise-box-ref value1)))
    167                             (%promise-box-tag-set! top-box (%promise-box-tag promise-box))
    168                             (%promise-box-value-set! top-box (%promise-box-value promise-box))
    169                             (%promise-box-set! value1 top-box) )
    170 
    171                          ; else
    172                          (error 'force "expected a lazy promise" value*) )
    173 
    174                      #;
    175                      (cond ((not value1)
    176                             (%promise-box-value-set! top-box value*) )
    177 
    178                            ((%lazy-promise? value1)
    179 
    180                             ; Copy the enclosed promise to the top
    181                             (let ((promise-box (%promise-box-ref value1)))
    182                                (%promise-box-tag-set! top-box (%promise-box-tag promise-box))
    183                                (%promise-box-value-set! top-box (%promise-box-value promise-box))
    184                                (%promise-box-set! value1 top-box) ) )
    185 
    186                            (else
    187                             (%promise-box-value-set! top-box value1) ) ) ) )
     160                        (%promise-box-set! promise top-box) ) ) )
    188161
    189162                 ; Now that all the work has been done, return a result
Note: See TracChangeset for help on using the changeset viewer.