Cosmetic changes in traversal.hl.rkt

This commit is contained in:
Georges Dupéron 2017-02-04 02:44:23 +01:00
parent 18a8938d0c
commit 22f3d97185
3 changed files with 63 additions and 26 deletions

View File

@ -1,14 +1,14 @@
<!-- Tufts VUE 3.3.0 concept-map (Graph-notes-copy2.vue) 2017-01-16 --> <!-- Tufts VUE 3.3.0 concept-map (Graph-notes-copy2.vue) 2017-01-28 -->
<!-- Tufts VUE: http://vue.tufts.edu/ --> <!-- Tufts VUE: http://vue.tufts.edu/ -->
<!-- Do Not Remove: VUE mapping @version(1.1) jar:file:/nix/store/z92y35qgs6g3cvvh0i4f14mg5n47zvvi-vue-3.3.0/share/vue/vue.jar!/tufts/vue/resources/lw_mapping_1_1.xml --> <!-- Do Not Remove: VUE mapping @version(1.1) jar:file:/nix/store/z92y35qgs6g3cvvh0i4f14mg5n47zvvi-vue-3.3.0/share/vue/vue.jar!/tufts/vue/resources/lw_mapping_1_1.xml -->
<!-- Do Not Remove: Saved date Mon Jan 16 09:59:19 CET 2017 by georges on platform Linux 4.4.38 in JVM 1.8.0_122-04 --> <!-- Do Not Remove: Saved date Sat Jan 28 20:49:48 CET 2017 by georges on platform Linux 4.4.40 in JVM 1.8.0_122-04 -->
<!-- Do Not Remove: Saving version @(#)VUE: built October 8 2015 at 1724 by tomadm on Linux 2.6.32-504.23.4.el6.x86_64 i386 JVM 1.7.0_21-b11(bits=32) --> <!-- Do Not Remove: Saving version @(#)VUE: built October 8 2015 at 1724 by tomadm on Linux 2.6.32-504.23.4.el6.x86_64 i386 JVM 1.7.0_21-b11(bits=32) -->
<?xml version="1.0" encoding="US-ASCII"?> <?xml version="1.0" encoding="US-ASCII"?>
<LW-MAP xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <LW-MAP xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="none" ID="0" xsi:noNamespaceSchemaLocation="none" ID="0"
label="Graph-notes-copy2.vue" created="1479309847604" x="0.0" label="Graph-notes-copy2.vue" created="1479309847604" x="0.0"
y="0.0" width="1.4E-45" height="1.4E-45" strokeWidth="0.0" autoSized="false"> y="0.0" width="1.4E-45" height="1.4E-45" strokeWidth="0.0" autoSized="false">
<resource referenceCreated="1484557159072" size="211457" <resource referenceCreated="1485632988469" size="213358"
spec="/home/georges/phc/racket-packages/phc-graph/Graph-notes-copy2.vue" spec="/home/georges/phc/racket-packages/phc-graph/Graph-notes-copy2.vue"
type="1" xsi:type="URLResource"> type="1" xsi:type="URLResource">
<title>Graph-notes-copy2.vue</title> <title>Graph-notes-copy2.vue</title>
@ -1376,7 +1376,7 @@
<ID2 xsi:type="node">244</ID2> <ID2 xsi:type="node">244</ID2>
</child> </child>
<child ID="246" label="Too hard to implement for now" layerID="1" <child ID="246" label="Too hard to implement for now" layerID="1"
created="1479314956001" x="1452.3375" y="1052.5447" created="1479314956001" x="1563.3375" y="1093.5447"
width="210.0" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> width="210.0" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node">
<fillColor>#A6A6A6</fillColor> <fillColor>#A6A6A6</fillColor>
<strokeColor>#776D6D</strokeColor> <strokeColor>#776D6D</strokeColor>
@ -1385,16 +1385,16 @@
<URIString>http://vue.tufts.edu/rdf/resource/6e0b664c43a6be970d2ffe253b42a8fa</URIString> <URIString>http://vue.tufts.edu/rdf/resource/6e0b664c43a6be970d2ffe253b42a8fa</URIString>
<shape arcwidth="20.0" archeight="20.0" xsi:type="roundRect"/> <shape arcwidth="20.0" archeight="20.0" xsi:type="roundRect"/>
</child> </child>
<child ID="247" layerID="1" created="1479314956003" x="1533.3042" <child ID="247" layerID="1" created="1479314956003" x="1544.263"
y="1028.2449" width="16.866577" height="24.799805" y="1028.2449" width="105.94922" height="65.799805"
strokeWidth="1.0" autoSized="false" controlCount="0" strokeWidth="1.0" autoSized="false" controlCount="0"
arrowState="2" xsi:type="link"> arrowState="2" xsi:type="link">
<strokeColor>#000000</strokeColor> <strokeColor>#000000</strokeColor>
<textColor>#404040</textColor> <textColor>#404040</textColor>
<font>SansSerif-plain-11</font> <font>SansSerif-plain-11</font>
<URIString>http://vue.tufts.edu/rdf/resource/6e0b664c43a6be970d2ffe25426d76fa</URIString> <URIString>http://vue.tufts.edu/rdf/resource/6e0b664c43a6be970d2ffe25426d76fa</URIString>
<point1 x="1533.8043" y="1028.7449"/> <point1 x="1544.763" y="1028.7449"/>
<point2 x="1549.6709" y="1052.5447"/> <point2 x="1649.7122" y="1093.5447"/>
<ID1 xsi:type="node">244</ID1> <ID1 xsi:type="node">244</ID1>
<ID2 xsi:type="node">246</ID2> <ID2 xsi:type="node">246</ID2>
</child> </child>
@ -3825,12 +3825,49 @@
<ID1 xsi:type="node">544</ID1> <ID1 xsi:type="node">544</ID1>
<ID2 xsi:type="node">546</ID2> <ID2 xsi:type="node">546</ID2>
</child> </child>
<child ID="550"
label="Needs graph isomorphism in the general case (when the AST contains sets of nodes),&#xa;which is costly"
layerID="1" created="1485632929412" x="1640.6375" y="1037.7448"
width="579.0" height="38.0" strokeWidth="1.0" autoSized="true" xsi:type="node">
<fillColor>#A6A6A6</fillColor>
<strokeColor>#776D6D</strokeColor>
<textColor>#000000</textColor>
<font>SansSerif-plain-12</font>
<URIString>http://vue.tufts.edu/rdf/resource/e6a06477c0a80128519635b7f1185dc6</URIString>
<shape arcwidth="20.0" archeight="20.0" xsi:type="roundRect"/>
</child>
<child ID="551" layerID="1" created="1485632929416" x="1614.5303"
y="1025.436" width="121.777954" height="12.808716"
strokeWidth="1.0" autoSized="false" controlCount="0"
arrowState="2" xsi:type="link">
<strokeColor>#404040</strokeColor>
<textColor>#404040</textColor>
<font>SansSerif-plain-11</font>
<URIString>http://vue.tufts.edu/rdf/resource/e6a06478c0a80128519635b723122715</URIString>
<point1 x="1615.0302" y="1025.936"/>
<point2 x="1735.8081" y="1037.7448"/>
<ID1 xsi:type="node">244</ID1>
<ID2 xsi:type="node">550</ID2>
</child>
<child ID="554" layerID="1" created="1485632973031" x="1730.171"
y="1075.2449" width="97.48096" height="18.799927"
strokeWidth="1.0" autoSized="false" controlCount="0"
arrowState="2" xsi:type="link">
<strokeColor>#404040</strokeColor>
<textColor>#404040</textColor>
<font>SansSerif-plain-11</font>
<URIString>http://vue.tufts.edu/rdf/resource/e6a06478c0a80128519635b734204420</URIString>
<point1 x="1827.152" y="1075.7448"/>
<point2 x="1730.671" y="1093.5447"/>
<ID1 xsi:type="node">550</ID1>
<ID2 xsi:type="node">246</ID2>
</child>
<layer ID="1" label="Layer 1" created="1479309847607" x="0.0" <layer ID="1" label="Layer 1" created="1479309847607" x="0.0"
y="0.0" width="1.4E-45" height="1.4E-45" strokeWidth="0.0" autoSized="false"> y="0.0" width="1.4E-45" height="1.4E-45" strokeWidth="0.0" autoSized="false">
<URIString>http://vue.tufts.edu/rdf/resource/6dbf6b15c0a80026548592b8d2f3fee2</URIString> <URIString>http://vue.tufts.edu/rdf/resource/6dbf6b15c0a80026548592b8d2f3fee2</URIString>
</layer> </layer>
<userZoom>0.75</userZoom> <userZoom>1.0</userZoom>
<userOrigin x="-1182.522" y="-189.81644"/> <userOrigin x="-1573.3625" y="-273.75525"/>
<presentationBackground>#FFFFFF</presentationBackground> <presentationBackground>#FFFFFF</presentationBackground>
<PathwayList currentPathway="0" revealerIndex="-1"> <PathwayList currentPathway="0" revealerIndex="-1">
<pathway ID="0" label="Chemin sans nom" created="1479309847603" <pathway ID="0" label="Chemin sans nom" created="1479309847603"

View File

@ -10,7 +10,6 @@
"typed-racket-lib" "typed-racket-lib"
"srfi-lite-lib" "srfi-lite-lib"
"delay-pure" "delay-pure"
"backport-template-pr1514"
"typed-map" "typed-map"
"scribble-lib" "scribble-lib"
"pconvert-lib" "pconvert-lib"

View File

@ -59,24 +59,25 @@ The second occurrence of @racket[(Listof String)], although semantically
equivalent to the type to replace, @racket[Foo], will not be altered, as it is equivalent to the type to replace, @racket[Foo], will not be altered, as it is
not expressed syntactically using the @racket[Foo] identifier. not expressed syntactically using the @racket[Foo] identifier.
@defform[(define-fold function-name type-name whole-type type-to-replaceᵢ ...)]{ @defform[
(define-fold _function-name _type-name _whole-type _type-to-replaceᵢ ...)]{
The @racket[define-fold] macro takes the type of the whole data structure, and The @racket[define-fold] macro takes the type of the whole data structure, and
a list of types to replace, each associated with a predicate for that type. It a list of types to replace, each associated with a predicate for that type. It
@;defines @racket[_name] as a macro, which behaves as follows: @;defines @racket[_name] as a macro, which behaves as follows:
defines @racket[(type-name Tᵢ ...)] as a polymorphic type, with one type defines @racket[(_type-name _Tᵢ ...)] as a polymorphic type, with one type
argument for each @racket[type-to-replaceᵢ], such that argument for each @racket[_type-to-replaceᵢ], such that
@racketblock[(type-name type-to-replaceᵢ ...)] @racketblock[(_type-name _type-to-replaceᵢ ...)]
is the same type as is the same type as
@racketblock[whole-type] @racketblock[_whole-type]
In other words, @racket[type-name] is defined as @racket[whole-type], except In other words, @racket[_type-name] is defined as @racket[_whole-type], except
that each syntactic occurrence of a @racket[type-to-replaceᵢ] is replaced with that each syntactic occurrence of a @racket[_type-to-replaceᵢ] is replaced with
the corresponding type argument @racket[Tᵢ]. the corresponding type argument @racket[_Tᵢ].
It also defines @racket[function-name] as a function, with the type It also defines @racket[_function-name] as a function, with the type
@racketblock[( (Aᵢ ... Bᵢ ... Acc) @racketblock[( (Aᵢ ... Bᵢ ... Acc)
( (?@ ( Any Boolean : Aᵢ) ( (?@ ( Any Boolean : Aᵢ)
@ -91,7 +92,7 @@ not expressed syntactically using the @racket[Foo] identifier.
@racketmodname[syntax/parse/experimental/template] to indicate that the @racketmodname[syntax/parse/experimental/template] to indicate that the
function accepts a predicate, followed by an update function, followed by function accepts a predicate, followed by an update function, followed by
another predicate, and so on. For example, the function type when there are another predicate, and so on. For example, the function type when there are
three @racket[type-to-replaceᵢ] would be: three @racket[_type-to-replaceᵢ] would be:
@racketblock[( (A₁ A₂ A₃ B₁ B₂ B₃ Acc) @racketblock[( (A₁ A₂ A₃ B₁ B₂ B₃ Acc)
( ( Any Boolean : A₁) ( ( Any Boolean : A₁)
@ -105,11 +106,11 @@ not expressed syntactically using the @racket[Foo] identifier.
(Values (type-name B₁ B₂ B₃) (Values (type-name B₁ B₂ B₃)
Acc))))] Acc))))]
The @racket[function-name] replaces all values in the whole data structure The @racket[_function-name] replaces all values in the whole data structure
which are present in locations corresponding to a @racket[type-to-replaceᵢ] in which are present in locations corresponding to a @racket[_type-to-replaceᵢ] in
the @racket[whole-type]. It expects those values to have the type @racket[Aᵢ], the @racket[_whole-type]. It expects those values to have the type @racket[Aᵢ],
i.e. its input type is not restricted to @racket[whole-type], any polymorphic i.e. its input type is not restricted to @racket[_whole-type], any polymorphic
instance of @racket[type-name] is valid. Each value is passed as an argument instance of @racket[_type-name] is valid. Each value is passed as an argument
to the corresponding update function with type to the corresponding update function with type
@racket[( Aᵢ Acc (Values Bᵢ Acc))], and the result of type @racket[Bᵢ] is @racket[( Aᵢ Acc (Values Bᵢ Acc))], and the result of type @racket[Bᵢ] is
used as a replacement. used as a replacement.