\begin{vdm_al} class MergeSort issubclassof Sorter
operations
public Sort: seqofint ==> seqofint
Sort(l) == return MergeSorter(l)
functions
MergeSorter: seqofreal -> seqofreal
MergeSorter(l) == cases l:
[] -> l,
[e] -> l, others -> let l1^l2 inset {l} bestabs (len l1 - len l2) < 2 in let l_l = MergeSorter(l1),
l_r = MergeSorter(l2) in Merge(l_l, l_r) end measureLen;
Len: seqofreal -> nat Len(list) == len list;
\end{vdm_al}
Although the \texttt{Merge} function takes sequence of integers it has on purpose been
limited by the pre-condition "artificially"to only work for natural numbers in order to
illustrate how the debugger can catch such pre-condition violations when called with
negative numbers.
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.