Changeset 39681 in project
- Timestamp:
- 03/12/21 23:08:35 (6 weeks ago)
- Location:
- release/5/srfi-45/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
release/5/srfi-45/trunk/srfi-45.egg
r39679 r39681 12 12 (extension srfi-45 13 13 (types-file) 14 (csc-options 15 ;"-disable-interrupts" ;C4 ?? 16 "-O3" "-d1" "-no-procedure-checks") ) ) ) 14 (csc-options "-O3" "-d1" "-strict-types" "-no-procedure-checks") ) ) ) -
release/5/srfi-45/trunk/srfi-45.scm
r39675 r39681 34 34 check-errors) 35 35 36 ; unsafe36 ;very unsafe 37 37 (include "chicken-primitive-object-inlines") 38 38 … … 114 114 (%promise-box-value-set! promise-box promise) ) 115 115 116 ;; 116 ;; Use SRFI 45 strict semantics for lazy promise 117 118 (define lazy-strict (make-parameter #t)) 119 120 ;; Constructors 117 121 118 122 (define (*make-lazy-promise thunk) (%make-lazy-promise thunk)) 119 123 (define (*make-eager-promise thunk) (%make-eager-promise (call-with-values thunk list))) 120 121 ;; Constructors122 124 123 125 (define-syntax lazy … … 135 137 ;; Predicates 136 138 139 (define (promise? obj) (or (r5rs:promise? obj) (%recursive-promise? obj))) 140 137 141 (define (lazy-promise? obj) (%lazy-promise? obj)) 138 142 (define (eager-promise? obj) (%eager-promise? obj)) 139 143 (define (recursive-promise? obj) (%recursive-promise? obj)) 140 144 141 (define (promise? obj) (or (r5rs:promise? obj) (%recursive-promise? obj)))142 143 ;; Use SRFI 45 strict semantics for lazy promise144 145 (define lazy-strict (make-parameter #t (lambda (x) (%->boolean x))))146 147 145 ;; What kinda promise 148 146 149 #;;FIXME this doesn't work147 ;FIXME this doesn't work 150 148 (define-record-printer (recursive-promise obj out) 151 149 (display "#<" out)
Note: See TracChangeset
for help on using the changeset viewer.