\begin{patch}{HeapXmpPagePatch1} \begin{paste}{HeapXmpPageFull1}{HeapXmpPageEmpty1} \pastebutton{HeapXmpPageFull1}{\hidepaste} \tab{5}\spadcommand{h := heap [-4,9,11,2,7,-7]\bound{h }} \indentrel{3}\begin{verbatim} (1) [11,7,9,- 4,2,- 7] Type: Heap Integer \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{HeapXmpPageEmpty1} \begin{paste}{HeapXmpPageEmpty1}{HeapXmpPagePatch1} \pastebutton{HeapXmpPageEmpty1}{\showpaste} \tab{5}\spadcommand{h := heap [-4,9,11,2,7,-7]\bound{h }} \end{paste}\end{patch} \begin{patch}{HeapXmpPagePatch2} \begin{paste}{HeapXmpPageFull2}{HeapXmpPageEmpty2} \pastebutton{HeapXmpPageFull2}{\hidepaste} \tab{5}\spadcommand{insert!(3,h)\bound{h1 }\free{h }} \indentrel{3}\begin{verbatim} (2) [11,7,9,- 4,2,- 7,3] Type: Heap Integer \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{HeapXmpPageEmpty2} \begin{paste}{HeapXmpPageEmpty2}{HeapXmpPagePatch2} \pastebutton{HeapXmpPageEmpty2}{\showpaste} \tab{5}\spadcommand{insert!(3,h)\bound{h1 }\free{h }} \end{paste}\end{patch} \begin{patch}{HeapXmpPagePatch3} \begin{paste}{HeapXmpPageFull3}{HeapXmpPageEmpty3} \pastebutton{HeapXmpPageFull3}{\hidepaste} \tab{5}\spadcommand{extract! h\bound{h2 }\free{h1 }} \indentrel{3}\begin{verbatim} (3) 11 Type: PositiveInteger \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{HeapXmpPageEmpty3} \begin{paste}{HeapXmpPageEmpty3}{HeapXmpPagePatch3} \pastebutton{HeapXmpPageEmpty3}{\showpaste} \tab{5}\spadcommand{extract! h\bound{h2 }\free{h1 }} \end{paste}\end{patch} \begin{patch}{HeapXmpPagePatch4} \begin{paste}{HeapXmpPageFull4}{HeapXmpPageEmpty4} \pastebutton{HeapXmpPageFull4}{\hidepaste} \tab{5}\spadcommand{h\free{h2 }} \indentrel{3}\begin{verbatim} (4) [9,7,3,- 4,2,- 7] Type: Heap Integer \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{HeapXmpPageEmpty4} \begin{paste}{HeapXmpPageEmpty4}{HeapXmpPagePatch4} \pastebutton{HeapXmpPageEmpty4}{\showpaste} \tab{5}\spadcommand{h\free{h2 }} \end{paste}\end{patch} \begin{patch}{HeapXmpPagePatch5} \begin{paste}{HeapXmpPageFull5}{HeapXmpPageEmpty5} \pastebutton{HeapXmpPageFull5}{\hidepaste} \tab{5}\spadcommand{[extract!(h) while not empty?(h)]\bound{h2 }} \indentrel{3}\begin{verbatim} (5) [9,7,3,2,- 4,- 7] Type: List Integer \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{HeapXmpPageEmpty5} \begin{paste}{HeapXmpPageEmpty5}{HeapXmpPagePatch5} \pastebutton{HeapXmpPageEmpty5}{\showpaste} \tab{5}\spadcommand{[extract!(h) while not empty?(h)]\bound{h2 }} \end{paste}\end{patch} \begin{patch}{HeapXmpPagePatch6} \begin{paste}{HeapXmpPageFull6}{HeapXmpPageEmpty6} \pastebutton{HeapXmpPageFull6}{\hidepaste} \tab{5}\spadcommand{heapsort(x) == (empty? x => []; cons(extract!(x),heapsort x))\bound{f }} \indentrel{3}\begin{verbatim} Type: Void \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{HeapXmpPageEmpty6} \begin{paste}{HeapXmpPageEmpty6}{HeapXmpPagePatch6} \pastebutton{HeapXmpPageEmpty6}{\showpaste} \tab{5}\spadcommand{heapsort(x) == (empty? x => []; cons(extract!(x),heapsort x))\bound{f }} \end{paste}\end{patch} \begin{patch}{HeapXmpPagePatch7} \begin{paste}{HeapXmpPageFull7}{HeapXmpPageEmpty7} \pastebutton{HeapXmpPageFull7}{\hidepaste} \tab{5}\spadcommand{h1 := heap [17,-4,9,-11,2,7,-7]\bound{h1 }} \indentrel{3}\begin{verbatim} (7) [17,2,9,- 11,- 4,7,- 7] Type: Heap Integer \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{HeapXmpPageEmpty7} \begin{paste}{HeapXmpPageEmpty7}{HeapXmpPagePatch7} \pastebutton{HeapXmpPageEmpty7}{\showpaste} \tab{5}\spadcommand{h1 := heap [17,-4,9,-11,2,7,-7]\bound{h1 }} \end{paste}\end{patch} \begin{patch}{HeapXmpPagePatch8} \begin{paste}{HeapXmpPageFull8}{HeapXmpPageEmpty8} \pastebutton{HeapXmpPageFull8}{\hidepaste} \tab{5}\spadcommand{heapsort h1\free{f }} \indentrel{3}\begin{verbatim} (8) [17,9,7,2,- 4,- 7,- 11] Type: List Integer \end{verbatim} \indentrel{-3}\end{paste}\end{patch} \begin{patch}{HeapXmpPageEmpty8} \begin{paste}{HeapXmpPageEmpty8}{HeapXmpPagePatch8} \pastebutton{HeapXmpPageEmpty8}{\showpaste} \tab{5}\spadcommand{heapsort h1\free{f }} \end{paste}\end{patch}