README.org: Update the roadmap.
This commit is contained in:
parent
485aa4ca95
commit
c7912705ca
1 changed files with 28 additions and 21 deletions
49
README.org
49
README.org
|
@ -34,36 +34,43 @@ interaction with Org-mode.
|
||||||
that I work on the subsequent items decreases with their position
|
that I work on the subsequent items decreases with their position
|
||||||
in the list.
|
in the list.
|
||||||
|
|
||||||
*** TODO Think about /not/ using generics for the dynamics
|
|
||||||
Typed Racket can now type classes, and I can implement the idea
|
|
||||||
from the module =generics= as a class. However, I got this advice
|
|
||||||
on Racket Users group:
|
|
||||||
|
|
||||||
#+BEGIN_QUOTE
|
|
||||||
If you don't need to support arbitrary user implementations, you
|
|
||||||
can avoid generics and classes altogether and use structs whose
|
|
||||||
fields contain functions.
|
|
||||||
#+END_QUOTE
|
|
||||||
|
|
||||||
I will need to think about simpler implementations of the
|
|
||||||
interface to dynamics, which should also be simpler to type.
|
|
||||||
|
|
||||||
*** TODO Convert =dds= to Typed Racket
|
*** TODO Convert =dds= to Typed Racket
|
||||||
This will necessarily lead to updates in the comments, which
|
Rewriting =dds= with Typed Racket will be a major refactoring,
|
||||||
should be rewritten with Scribble.
|
consisting in the following 3 phases which will happen more or
|
||||||
|
less in parallel:
|
||||||
|
|
||||||
I will do the conversion in the directory =typed/=, by
|
- define types, add type signatures, add types for functions
|
||||||
incrementally translating existing modules, definition
|
I import from =graph=;
|
||||||
by definition.
|
- transfer the comments from the source files to Scribble
|
||||||
|
documentation;
|
||||||
|
- redefine the generic interface for dynamics, which is currently
|
||||||
|
in =generics=.
|
||||||
|
|
||||||
The order I will convert the modules:
|
I plan to implement the new dynamics interface as a classes, since
|
||||||
|
Typed Racket can now type classes. I didn't really like generics:
|
||||||
|
they are quite cumbersome, and I think I can do more with classes.
|
||||||
|
|
||||||
|
People on Racket Users suggested using structures with fields
|
||||||
|
containing functions, but it does not seem to get me to my goal of
|
||||||
|
having type-level methods/functions.
|
||||||
|
|
||||||
|
The order in which I will convert the modules:
|
||||||
|
|
||||||
1. =utils=
|
1. =utils=
|
||||||
2. =functions=
|
2. =functions=
|
||||||
3. the module defining the interface to dynamics (currently =generics=)
|
3. =dynamics= (currently =generics=)
|
||||||
4. =networks=
|
4. =networks=
|
||||||
5. =rs=
|
5. =rs=
|
||||||
|
|
||||||
|
This is how I will convert a module =A=:
|
||||||
|
|
||||||
|
1. Create a copy =A-untyped.rkt=.
|
||||||
|
2. Empty =A.rkt=.
|
||||||
|
3. Transfer the definitions from =A-untyped.rkt= to =A.rkt= one by
|
||||||
|
one, adding the necessary types, signatures, and typed imports
|
||||||
|
as I go.
|
||||||
|
4. When done, remove =A-untyped.rkt=.
|
||||||
|
|
||||||
*** TODO Split =networks= into general networks and threshold Boolean networks
|
*** TODO Split =networks= into general networks and threshold Boolean networks
|
||||||
*** TODO Submit =update-graph= to =stchang=
|
*** TODO Submit =update-graph= to =stchang=
|
||||||
*** TODO Implement the BN \to RS conversion
|
*** TODO Implement the BN \to RS conversion
|
||||||
|
|
Loading…
Reference in a new issue