aboutsummaryrefslogtreecommitdiff
path: root/guile/starlet/base.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guile/starlet/base.scm')
-rw-r--r--guile/starlet/base.scm15
1 files changed, 7 insertions, 8 deletions
diff --git a/guile/starlet/base.scm b/guile/starlet/base.scm
index 54252e2..8b5c035 100644
--- a/guile/starlet/base.scm
+++ b/guile/starlet/base.scm
@@ -143,6 +143,7 @@
(cons fix attr)
value))
+
;; List of fixtures and home state (must remain consistent)
(define fixtures (make-atomic-box '()))
@@ -271,12 +272,12 @@
(define (have-value val)
- (not (eq? val 'attribute-not-in-state)))
+ (not (eq? val 'no-value)))
(define (state-find fix attr state)
(hash-ref (get-state-hash-table state)
(cons fix attr)
- 'attribute-not-in-state))
+ 'no-value))
(define (state-map func state)
(hash-map->list (lambda (key value)
@@ -316,9 +317,10 @@ pre-existing contents."
(add-state-to-state! merge-rule-ltp state (current-state)))
+;; Coerce something from a state object into a number for scanout
(define (value->number val time)
(if (procedure? val)
- (val time)
+ (value->number (val time) time)
val))
@@ -326,9 +328,7 @@ pre-existing contents."
(set-state-hash-table! state (make-hash-table)))
-(define (merge-rule-ltp attr a b)
- (lambda (time)
- (value->number b time)))
+(define (merge-rule-ltp attr a b) b)
(define (merge-rule-htp attr a b)
(if (intensity? attr)
@@ -339,8 +339,7 @@ pre-existing contents."
(value->number b time)))
;; LTP for all non-intensity attributes
- (lambda (time)
- (value->number b time))))
+ b))
(define (merge-states-htp list-of-states)
(merge-states merge-rule-htp