The “noweb” (see http://www.cs.tufts.edu/~nr/noweb/) Literate Programming system allows named blocks of code to be referenced by using the familiar Noweb syntax:
When a code block is tangled or evaluated, whether or not “noweb”
references are expanded depends upon the value of the
:noweb yes, then a Noweb reference is expanded before
:noweb no, the default, then the reference is not
expanded before evaluation. See the noweb-ref header argument for
a more flexible way to resolve noweb references.
It is possible to include the results of a code block rather than the body. This is done by appending parenthesis to the code block name which may optionally contain arguments to the code block as shown below.
Note: the default value,
:noweb no, was chosen to ensure that
correct code is not broken in a language, such as Ruby, where
<<arg>> is a syntactically valid construct. If
<<arg>> is not
syntactically valid in languages that you use, then please consider setting
the default value.
Note: if noweb tangling is slow in large Org mode files consider setting the
*org-babel-use-quick-and-dirty-noweb-expansion* variable to true.
This will result in faster noweb reference resolution at the expense of not
correctly resolving inherited values of the