diff options
author | Camil Staps | 2016-02-02 19:24:50 +0100 |
---|---|---|
committer | Camil Staps | 2016-02-02 19:24:50 +0100 |
commit | a7d7542dc646a5fd124ef71e71ce260889f1701b (patch) | |
tree | 04ed89503bbb3cc9933273a1326a53ca724c3492 /1415/files/practicum/StdGameTree_en_StdRoseTree/StdRoseTree.dcl | |
parent | week6 camil: working positioning of lines by putting empties at left and righ... (diff) |
Diffstat (limited to '1415/files/practicum/StdGameTree_en_StdRoseTree/StdRoseTree.dcl')
-rw-r--r-- | 1415/files/practicum/StdGameTree_en_StdRoseTree/StdRoseTree.dcl | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/1415/files/practicum/StdGameTree_en_StdRoseTree/StdRoseTree.dcl b/1415/files/practicum/StdGameTree_en_StdRoseTree/StdRoseTree.dcl new file mode 100644 index 0000000..5d6609d --- /dev/null +++ b/1415/files/practicum/StdGameTree_en_StdRoseTree/StdRoseTree.dcl @@ -0,0 +1,20 @@ +definition module StdRoseTree
+
+import StdClass
+
+/** This module defines rose trees.
+*/
+:: RoseTree a = Node a [RoseTree a]
+:: Children a :== a -> [a]
+:: PruneDepth :== Int
+
+iteratetree :: !(Children a) a -> RoseTree a
+
+root :: !(RoseTree a) -> a
+children :: !(RoseTree a) -> [RoseTree a]
+depth :: !(RoseTree a) -> Int
+
+maptree :: (a -> b) !(RoseTree a) -> RoseTree b
+prunetree :: !PruneDepth !(RoseTree a) -> RoseTree a
+bonsai :: !(RoseTree a) -> RoseTree a | Eq a
+paths :: !(RoseTree a) -> [[a]]
|