maintenance/talks/2023-dfn/functional-thesis.svg

338 lines
16 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="1920"
height="1080"
viewBox="0 0 507.99999 285.75001"
version="1.1"
id="svg8"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
sodipodi:docname="functional-thesis.svg"
xml:space="preserve"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"><defs
id="defs2"><inkscape:path-effect
effect="bspline"
id="path-effect10907"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" /><inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 142.875 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="507.99999 : 142.875 : 1"
inkscape:persp3d-origin="254 : 95.250003 : 1"
id="perspective9456" /><inkscape:path-effect
effect="bspline"
id="path-effect4268"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" /><linearGradient
id="linearGradient4094"><stop
style="stop-color:#232323;stop-opacity:1;"
offset="0"
id="stop4096" /><stop
style="stop-color:#4d4d4d;stop-opacity:1;"
offset="1"
id="stop4098" /></linearGradient><linearGradient
id="linearGradient4014"><stop
style="stop-color:#a0a0a0;stop-opacity:1;"
offset="0"
id="stop4016" /><stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="1"
id="stop4018" /></linearGradient><linearGradient
id="linearGradient4678"><stop
style="stop-color:#e5e5e5;stop-opacity:1;"
offset="0"
id="stop4680" /><stop
style="stop-color:#d3cdcd;stop-opacity:1;"
offset="1"
id="stop4682" /></linearGradient><linearGradient
id="linearGradient4341"><stop
id="stop4343"
offset="0"
style="stop-color:#333333;stop-opacity:1;" /><stop
id="stop4345"
offset="1"
style="stop-color:#484848;stop-opacity:1;" /></linearGradient><linearGradient
id="linearGradient4696-5"><stop
id="stop4698-6"
offset="0"
style="stop-color:#ffb638;stop-opacity:1;" /><stop
id="stop4700-2"
offset="1"
style="stop-color:#f0ae26;stop-opacity:1;" /></linearGradient><linearGradient
id="linearGradient4702-3"><stop
id="stop4704-1"
offset="0"
style="stop-color:#e34646;stop-opacity:1;" /><stop
id="stop4706-8"
offset="1"
style="stop-color:#ffbf2d;stop-opacity:1;" /></linearGradient><color-profile
name="Artifex-PS-CMYK-Profile"
xlink:href="/usr/share/color/icc/ghostscript/ps_cmyk.icc"
id="color-profile836" /><clipPath
id="clipPath4501"
clipPathUnits="userSpaceOnUse"><path
style="clip-rule:evenodd"
inkscape:connector-curvature="0"
id="path4499"
d="M 0,0 H 124.992 V 144 H 0 Z" /></clipPath><clipPath
id="clipPath4525"
clipPathUnits="userSpaceOnUse"><path
inkscape:connector-curvature="0"
id="path4523"
d="M 0,0 H 100 V 125 H 0 Z" /></clipPath><clipPath
id="clipPath4545"
clipPathUnits="userSpaceOnUse"><path
inkscape:connector-curvature="0"
id="path4543"
d="M 0,0 H 100 V 125 H 0 Z" /></clipPath><clipPath
id="clipPath4561"
clipPathUnits="userSpaceOnUse"><path
inkscape:connector-curvature="0"
id="path4559"
d="M 0,0 H 100 V 125 H 0 Z" /></clipPath><clipPath
id="clipPath4577"
clipPathUnits="userSpaceOnUse"><path
inkscape:connector-curvature="0"
id="path4575"
d="M 0,0 H 100 V 125 H 0 Z" /></clipPath><clipPath
id="clipPath4593"
clipPathUnits="userSpaceOnUse"><path
inkscape:connector-curvature="0"
id="path4591"
d="M 0,0 H 100 V 125 H 0 Z" /></clipPath><clipPath
id="clipPath4609"
clipPathUnits="userSpaceOnUse"><path
inkscape:connector-curvature="0"
id="path4607"
d="M 0,0 H 100 V 125 H 0 Z" /></clipPath><clipPath
id="clipPath4625"
clipPathUnits="userSpaceOnUse"><path
inkscape:connector-curvature="0"
id="path4623"
d="M 0,0 H 100 V 125 H 0 Z" /></clipPath><clipPath
id="clipPath4641"
clipPathUnits="userSpaceOnUse"><path
inkscape:connector-curvature="0"
id="path4639"
d="M 0,0 H 100 V 125 H 0 Z" /></clipPath><clipPath
id="clipPath4657"
clipPathUnits="userSpaceOnUse"><path
inkscape:connector-curvature="0"
id="path4655"
d="M 0,0 H 100 V 125 H 0 Z" /></clipPath><clipPath
id="clipPath4673"
clipPathUnits="userSpaceOnUse"><path
inkscape:connector-curvature="0"
id="path4671"
d="M 0,0 H 100 V 125 H 0 Z" /></clipPath><style
id="style3894"
type="text/css"><![CDATA[
line, polyline, path, rect, circle {
fill: none;
stroke: #000000;
stroke-linecap: round;
stroke-linejoin: round;
stroke-miterlimit: 10.00;
}
]]></style><clipPath
id="cpNzMuMDYyM3w1NDYuMzIzfDM5My4wNzJ8MzEuMDU2Nw=="><rect
id="rect3902"
height="362.02"
width="473.26"
y="31.06"
x="73.06" /></clipPath><clipPath
id="cpMHw3MDguNjYxfDUwMy40MjV8MA=="><rect
id="rect3995"
height="503.43"
width="708.66"
y="0.00"
x="0.00" /></clipPath><marker
inkscape:stockid="Arrow2Send"
orient="auto"
refY="0"
refX="0"
id="Arrow2Send-3-3"
style="overflow:visible"
inkscape:isstock="true"><path
inkscape:connector-curvature="0"
id="path6389-4-7"
style="fill:#ffbf2d;fill-opacity:1;fill-rule:evenodd;stroke:#ffbf2d;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(-0.3,0,0,-0.3,0.69,0)" /></marker><marker
inkscape:stockid="Arrow2Send"
orient="auto"
refY="0"
refX="0"
id="Arrow2Send-3-3-6"
style="overflow:visible"
inkscape:isstock="true"><path
inkscape:connector-curvature="0"
id="path6389-4-7-3"
style="fill:#ffbf2d;fill-opacity:1;fill-rule:evenodd;stroke:#ffbf2d;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(-0.3,0,0,-0.3,0.69,0)" /></marker><inkscape:path-effect
effect="bspline"
id="path-effect10907-2"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" /><inkscape:path-effect
effect="bspline"
id="path-effect10907-7"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" /><inkscape:path-effect
effect="bspline"
id="path-effect10907-1"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" /><clipPath
id="clipPath8"><path
inkscape:connector-curvature="0"
id="path10"
d="M 76,2 V 48 H 54 V 71 H 35.580737 c -0.07818,0.665694 -0.141485,1.332869 -0.205737,2 -1.151162,12.530963 1.036422,24.087546 6.0625,33.96875 L 43.125,110 c 1.011403,1.81678 2.191241,3.52297 3.4375,5.1875 1.244725,1.66248 1.685716,2.58262 2.46875,3.6875 C 62.319911,133.81083 82.129473,141 105,141 155.64836,141 198.63299,118.56201 217.65625,68.15625 231.15302,69.54122 244.09968,66.080358 250,54.5625 240.60137,49.138835 228.52163,50.877226 221.5625,54.375 L 240,2 168,48 H 145 V 2 Z" /></clipPath><clipPath
id="clipPath24989"><path
inkscape:connector-curvature="0"
id="path24987"
d="M 76,2 V 48 H 54 V 71 H 35.580737 c -0.07818,0.665694 -0.141485,1.332869 -0.205737,2 -1.151162,12.530963 1.036422,24.087546 6.0625,33.96875 L 43.125,110 c 1.011403,1.81678 2.191241,3.52297 3.4375,5.1875 1.244725,1.66248 1.685716,2.58262 2.46875,3.6875 C 62.319911,133.81083 82.129473,141 105,141 155.64836,141 198.63299,118.56201 217.65625,68.15625 231.15302,69.54122 244.09968,66.080358 250,54.5625 240.60137,49.138835 228.52163,50.877226 221.5625,54.375 L 240,2 168,48 H 145 V 2 Z" /></clipPath><clipPath
id="clipPath24993"><path
inkscape:connector-curvature="0"
id="path24991"
d="M 76,2 V 48 H 54 V 71 H 35.580737 c -0.07818,0.665694 -0.141485,1.332869 -0.205737,2 -1.151162,12.530963 1.036422,24.087546 6.0625,33.96875 L 43.125,110 c 1.011403,1.81678 2.191241,3.52297 3.4375,5.1875 1.244725,1.66248 1.685716,2.58262 2.46875,3.6875 C 62.319911,133.81083 82.129473,141 105,141 155.64836,141 198.63299,118.56201 217.65625,68.15625 231.15302,69.54122 244.09968,66.080358 250,54.5625 240.60137,49.138835 228.52163,50.877226 221.5625,54.375 L 240,2 168,48 H 145 V 2 Z" /></clipPath><clipPath
id="clipPath24997"><path
inkscape:connector-curvature="0"
id="path24995"
d="M 76,2 V 48 H 54 V 71 H 35.580737 c -0.07818,0.665694 -0.141485,1.332869 -0.205737,2 -1.151162,12.530963 1.036422,24.087546 6.0625,33.96875 L 43.125,110 c 1.011403,1.81678 2.191241,3.52297 3.4375,5.1875 1.244725,1.66248 1.685716,2.58262 2.46875,3.6875 C 62.319911,133.81083 82.129473,141 105,141 155.64836,141 198.63299,118.56201 217.65625,68.15625 231.15302,69.54122 244.09968,66.080358 250,54.5625 240.60137,49.138835 228.52163,50.877226 221.5625,54.375 L 240,2 168,48 H 145 V 2 Z" /></clipPath><clipPath
id="clipPath25001"><path
inkscape:connector-curvature="0"
id="path24999"
d="M 76,2 V 48 H 54 V 71 H 35.580737 c -0.07818,0.665694 -0.141485,1.332869 -0.205737,2 -1.151162,12.530963 1.036422,24.087546 6.0625,33.96875 L 43.125,110 c 1.011403,1.81678 2.191241,3.52297 3.4375,5.1875 1.244725,1.66248 1.685716,2.58262 2.46875,3.6875 C 62.319911,133.81083 82.129473,141 105,141 155.64836,141 198.63299,118.56201 217.65625,68.15625 231.15302,69.54122 244.09968,66.080358 250,54.5625 240.60137,49.138835 228.52163,50.877226 221.5625,54.375 L 240,2 168,48 H 145 V 2 Z" /></clipPath><filter
inkscape:label="Torn Edges"
inkscape:menu="Distort"
inkscape:menu-tooltip="Displace the outside of shapes and pictures without altering their content"
height="1"
y="0"
width="1"
x="0"
style="color-interpolation-filters:sRGB;"
id="filter33308"><feTurbulence
baseFrequency="0.05"
numOctaves="5"
type="fractalNoise"
result="result91"
id="feTurbulence33302" /><feDisplacementMap
scale="25"
result="result5"
xChannelSelector="R"
in="SourceGraphic"
in2="result91"
id="feDisplacementMap33304" /><feComposite
in="SourceGraphic"
operator="atop"
in2="result5"
id="feComposite33306" /></filter></defs><sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#f70bff"
borderopacity="1"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.33413268"
inkscape:cx="963.68902"
inkscape:cy="749.70217"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:pagecheckerboard="true"
inkscape:window-width="1920"
inkscape:window-height="1003"
inkscape:window-x="0"
inkscape:window-y="40"
inkscape:window-maximized="1"
showguides="false"
inkscape:deskcolor="#d1d1d1" /><metadata
id="metadata5"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" /></cc:Work><cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/"><cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" /><cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" /><cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /><cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" /></cc:License></rdf:RDF></metadata><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-11.249975)"><rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.3055087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect2926"
width="512.95203"
height="292.72192"
x="-2.0354033"
y="8.4516382" /><text
xml:space="preserve"
style="font-size:25.4px;line-height:1.25;font-family:'League Gothic';-inkscape-font-specification:'League Gothic';text-align:end;text-anchor:end;stroke-width:0.264583"
x="437.8551"
y="115.21201"
id="text2211"><tspan
sodipodi:role="line"
id="tspan2209"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.4px;font-family:Vollkorn;-inkscape-font-specification:'Vollkorn, Normal';font-variant-ligatures:discretionary-ligatures historical-ligatures;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:end;text-anchor:end;stroke-width:0.264583"
x="437.8551"
y="115.21201">The Purely Functional Software</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.4px;font-family:Vollkorn;-inkscape-font-specification:'Vollkorn, Normal';font-variant-ligatures:discretionary-ligatures historical-ligatures;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:end;text-anchor:end;stroke-width:0.264583"
x="437.8551"
y="148.27222"
id="tspan2213">Deployment Model</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.4px;font-family:Vollkorn;-inkscape-font-specification:'Vollkorn, Normal';font-variant-ligatures:discretionary-ligatures historical-ligatures;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:end;text-anchor:end;stroke-width:0.264583"
x="437.8551"
y="181.33243"
id="tspan809" /><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.4px;font-family:Vollkorn;-inkscape-font-specification:'Vollkorn, Normal';font-variant-ligatures:discretionary-ligatures historical-ligatures;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:end;text-anchor:end;stroke-width:0.264583"
x="437.8551"
y="214.39262"
id="tspan2369">Dolstra, E. (2006)</tspan></text></g><style
id="style10850"
type="text/css">
.st0{opacity:0.15;fill:#292F33;}
.st1{fill:#FFFFFF;}
</style></svg>