Insert.html 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
  2. <html>
  3. <!-- Created on November 8, 2012 by texi2html 1.82
  4. texi2html was written by:
  5. Lionel Cons <[email protected]> (original author)
  6. Karl Berry <[email protected]>
  7. Olaf Bachmann <[email protected]>
  8. and many others.
  9. Maintained by: Many creative people.
  10. Send bugs and suggestions to <[email protected]>
  11. -->
  12. <head>
  13. <title>avram - a virtual machine code interpreter: B.2 Insert</title>
  14. <meta name="description" content="avram - a virtual machine code interpreter: B.2 Insert">
  15. <meta name="keywords" content="avram - a virtual machine code interpreter: B.2 Insert">
  16. <meta name="resource-type" content="document">
  17. <meta name="distribution" content="global">
  18. <meta name="Generator" content="texi2html 1.82">
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  20. <style type="text/css">
  21. <!--
  22. a.summary-letter {text-decoration: none}
  23. blockquote.smallquotation {font-size: smaller}
  24. pre.display {font-family: serif}
  25. pre.format {font-family: serif}
  26. pre.menu-comment {font-family: serif}
  27. pre.menu-preformatted {font-family: serif}
  28. pre.smalldisplay {font-family: serif; font-size: smaller}
  29. pre.smallexample {font-size: smaller}
  30. pre.smallformat {font-family: serif; font-size: smaller}
  31. pre.smalllisp {font-size: smaller}
  32. span.roman {font-family:serif; font-weight:normal;}
  33. span.sansserif {font-family:sans-serif; font-weight:normal;}
  34. ul.toc {list-style: none}
  35. -->
  36. </style>
  37. </head>
  38. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  39. <a name="Insert"></a>
  40. <table cellpadding="1" cellspacing="1" border="0">
  41. <tr><td valign="middle" align="left">[<a href="Pairwise.html#Pairwise" title="Previous section in reading order"> &lt; </a>]</td>
  42. <td valign="middle" align="left">[<a href="Replace.html#Replace" title="Next section in reading order"> &gt; </a>]</td>
  43. <td valign="middle" align="left"> &nbsp; </td>
  44. <td valign="middle" align="left">[<a href="Reference-Implementations.html#Reference-Implementations" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
  45. <td valign="middle" align="left">[<a href="Reference-Implementations.html#Reference-Implementations" title="Up section"> Up </a>]</td>
  46. <td valign="middle" align="left">[<a href="Changes.html#Changes" title="Next chapter"> &gt;&gt; </a>]</td>
  47. <td valign="middle" align="left"> &nbsp; </td>
  48. <td valign="middle" align="left"> &nbsp; </td>
  49. <td valign="middle" align="left"> &nbsp; </td>
  50. <td valign="middle" align="left"> &nbsp; </td>
  51. <td valign="middle" align="left">[<a href="avram.html#Top" title="Cover (top) of document">Top</a>]</td>
  52. <td valign="middle" align="left">[<a href="avram_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
  53. <td valign="middle" align="left">[<a href="Function-Index.html#Function-Index" title="Index">Index</a>]</td>
  54. <td valign="middle" align="left">[<a href="avram_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
  55. </tr></table>
  56. <hr size="1">
  57. <a name="Insert-1"></a>
  58. <h2 class="section">B.2 Insert</h2>
  59. <a name="index-insert-1"></a>
  60. <p>This function is mentioned in <a href="Sort.html#Sort">Sort</a>, on sorting. It takes the
  61. virtual code for a partial order relational operator and returns the
  62. code for a function of two arguments. The left argument is a list item
  63. and the right argument is a list of items of the same type, which is
  64. already sorted with respect to the relational operator given as the
  65. argument to <code>insert</code>. The result of the function returned by
  66. <code>insert</code> is a list similar to its right argument but with the left
  67. argument inserted in the proper position to maintain the order.
  68. </p>
  69. <p>This code makes use of the <code>self</code>, <code>argument</code>, <code>head</code>
  70. and <code>tail</code> declarations associated with <code>pairwise</code>.
  71. </p>
  72. <table><tr><td>&nbsp;</td><td><pre class="example">
  73. insert =
  74. bu(compose,refer) (hired conditional)(
  75. constant compose(right,argument),
  76. couple(
  77. (hired conditional)(
  78. (hired compose)(
  79. identity,
  80. constant compose(
  81. couple(left,compose(head,right)),
  82. argument)),
  83. constant (
  84. argument,
  85. couple(
  86. compose(head,compose(right,argument)),
  87. (hired meta)(
  88. self,
  89. couple(
  90. compose(left,argument),
  91. compose(tail,compose(right,argument))))))),
  92. constant argument))
  93. </pre></td></tr></table>
  94. <p>As with the other higher order functions in this appendix, the only
  95. feasible ways to verify it would be either by formal proof or by some
  96. form of symbolic interpretation.
  97. </p>
  98. <hr size="1">
  99. <p>
  100. <font size="-1">
  101. This document was generated on <i>November 8, 2012</i> using <a href="http://www.nongnu.org/texi2html/"><i>texi2html 1.82</i></a>.
  102. </font>
  103. <br>
  104. </p>
  105. </body>
  106. </html>