From 245b22316e136748db6ea42e9d9979c3a5d1a240 Mon Sep 17 00:00:00 2001 From: Sergiu Ivanov Date: Sun, 23 Feb 2020 09:12:01 +0100 Subject: [PATCH] networks: Add and use domain-mapping/c. --- networks.rkt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/networks.rkt b/networks.rkt index a8e87c2..37e8a2b 100644 --- a/networks.rkt +++ b/networks.rkt @@ -23,12 +23,12 @@ network?)] [list-interactions (-> network-form? variable? (listof variable?))] [build-interaction-graph (-> network-form? graph?)] - [build-all-states (-> (hash/c variable? generic-set?) (listof state?))] + [build-all-states (-> domain-mapping/c (listof state?))] [build-all-states-same-domain (-> (listof variable?) generic-set? (listof state?))] [make-same-domains (-> (listof variable?) generic-set? (hash/c variable? generic-set?))] [make-boolean-domains (-> (listof variable?) (hash/c variable? (list/c #f #t)))] - [get-interaction-sign (-> network-form? (hash/c variable? generic-set?) variable? variable? (or/c '+ '- '0))] - [build-signed-interaction-graph (-> network-form? (hash/c variable? generic-set?) graph?)]) + [get-interaction-sign (-> network-form? domain-mapping/c variable? variable? (or/c '+ '- '0))] + [build-signed-interaction-graph (-> network-form? domain-mapping/c graph?)]) ;; Predicates (contract-out [variable? (-> any/c boolean?)] [state? (-> any/c boolean?)] @@ -37,7 +37,8 @@ ;; Contracts (contract-out [state/c contract?] [network/c contract?] - [update-function/c contract?]) + [update-function/c contract?] + [domain-mapping/c contract?]) ;; Syntax st nn) @@ -146,7 +147,10 @@ (unweighted-graph/adj (for/list ([(var _) n]) (cons var (list-interactions n var)))))) -;;; Given a list of pairs mapping variables to generic sets of their +;;; A domain mapping is a hash set mapping variables to the lists of +;;; values in their domains. +(define domain-mapping/c (hash/c variable? list?)) + ;;; Given a hash-set mapping variables to generic sets of their ;;; possible values, constructs the list of all possible states. (define (build-all-states vars-domains)