> Let us look at an example. I wrote:
>
> ------------<start example>------------
> ....
> ; Clean old data
> (do-symbols (symbol)
> (when (get symbol 'database)
> (setf (get symbol 'database) nil)))
> (setq *allconstructors* nil)
> ...
> ------------<end example>------------
>
> Do you think that:
>
> ------------<start example>------------
> ...
> <<Clean old data>>
>
> ....
> ....
>
> To clean old data we loop over all symbols from [[boot]] package
> and reset [[boot::database]] property to [[nil]]. We also rest
> [boot::*allconstructors*]] to [[nil]].
> <<Clean old data>>=
> (do-symbols (symbol)
> (when (get symbol 'database)
> (setf (get symbol 'database) nil)))
> (setq *allconstructors* nil)
> ------------<end example>------------
I think it has been explained enough that the *why* it important...
I just want to remark that one can do quite remarkable things with
noweb. Recently I wrote piece of code like that...
<<implementation: Compose>>=
structures(s: SetSpecies L): Generator % == generate {
for pi in structures(s) $ SetPartition(L) repeat {
<<Yield elements of $F[\pi]\times\prod_{p\in\pi} {G[p]}$>>
}
}
@
Of course there is the definition of F\circ G around that code chunk,
but, it is nice that one can put (repeat) a part of that definition in
the name of the code chunk. That very much helps to recognise the
relation between code and corresponding mathematics.
Ralf
_______________________________________________
Axiom-developer mailing list
Axiom-developer@nongnu.org
http://lists.nongnu.org/mailman/listinfo/axiom-developer