EVOLUTION-MANAGER
Edit File: literateFunction.xml
<article xmlns:r="http://www.r-project.org"> <para> <r:code> xmlSourceFunctions(system.file("exampleData", "literateFunction.xml", package = "XML")) fun </r:code> </para> <para> <r:function id="fun"> fun = function(x, y = 2, z = 3) { <r:code ref="checkInputs"/> <r:code ref="doComputation"/> <r:code ref="createOutput"/> } </r:function> </para> <para> The first part is <r:code id="checkInputs"><![CDATA[ if(!(x < 0 || y < .5)) stop("invalid input") ]]></r:code> </para> <para> Now we do the heart of the computation. This creates a derived local variable and then simulates some values. We do the latter within a separate fragment. <r:code id="doComputation"> tmp = z * log(x)^y <r:code ref="sim"/> </r:code> (Note that we cannot use a CDATA for this r:code as we refer to another <xml:tag>r:code</xml:tag> element. So we would have to use entities for any special characters such as & and < and >. </para> <para> Now we just put a class on the result <r:code id="createOutput"><![CDATA[ structure(ans, class = "FooBar") ]]></r:code> </para> <para> We now come to the simulation part. <r:code id="sim"><![CDATA[ ans = rnorm(floor(tmp)) ]]></r:code> Note that we have to agree on the local variables across the fragments, e.g. <r:var>ans</r:var>. </para> </article>