2020-02-23 12:19:37 +01:00
|
|
|
#lang racket
|
|
|
|
|
|
|
|
;;; dds/generic
|
|
|
|
|
|
|
|
;;; Provides the definition of several generic interfaces for discrete
|
|
|
|
;;; dynamical systems.
|
|
|
|
|
|
|
|
(require racket/generic)
|
|
|
|
|
|
|
|
(provide
|
|
|
|
;; Generics
|
|
|
|
gen:dds
|
|
|
|
;; Functions
|
|
|
|
(contract-out [dds-step (-> dds? any/c (set/c any/c))])
|
|
|
|
;; Predicates
|
|
|
|
(contract-out [dds? (-> any/c boolean?)]))
|
|
|
|
|
|
|
|
;;; A discrete dynamical system.
|
|
|
|
(define-generics dds
|
2020-02-23 12:21:08 +01:00
|
|
|
;; Given a dds and a state, produce the next states of the dds.
|
2020-02-23 12:19:37 +01:00
|
|
|
(dds-step dds state))
|