Pairwise.html 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
  2. <html>
  3. <!-- Created on December 10, 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.1 Pairwise</title>
  14. <meta name="description" content="avram - a virtual machine code interpreter: B.1 Pairwise">
  15. <meta name="keywords" content="avram - a virtual machine code interpreter: B.1 Pairwise">
  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="Pairwise"></a>
  40. <table cellpadding="1" cellspacing="1" border="0">
  41. <tr><td valign="middle" align="left">[<a href="Reference-Implementations.html#Reference-Implementations" title="Previous section in reading order"> &lt; </a>]</td>
  42. <td valign="middle" align="left">[<a href="Insert.html#Insert" 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="Pairwise-1"></a>
  58. <h2 class="section">B.1 Pairwise</h2>
  59. <a name="index-pairwise-1"></a>
  60. <p>This <code>silly</code> code fragment is mentioned in <a href="Reduce.html#Reduce">Reduce</a>, in the
  61. discussion of <code>reduce</code>, and is provided as an example of a solution
  62. to equations <em>E1</em> to <em>E3</em>. It is written in the style of a
  63. higher order function, in that it takes a function <code><var>f</var></code> as an
  64. argument and returns another function, [[<code>pairwise</code>]]
  65. <code><var>f</var></code> as a result.
  66. </p>
  67. <table><tr><td>&nbsp;</td><td><pre class="example">
  68. self = left
  69. argument = right
  70. head = left
  71. tail = right
  72. pairwise =
  73. compose(
  74. refer,
  75. compose(
  76. bu(
  77. conditional,
  78. conditional(argument,compose(tail,argument),constant nil)),
  79. couple(
  80. (hired couple)(
  81. (hired compose)(
  82. identity,
  83. constant (hired fan head)(
  84. argument,
  85. compose(tail,argument))),
  86. constant (hired meta)(
  87. self,
  88. compose(tail,compose(tail,argument)))),
  89. constant argument)))
  90. </pre></td></tr></table>
  91. <p>To see how this works, one should evaluate it symbolically with an
  92. unknown <code><var>f</var></code>, which will result in some <code>silly</code>
  93. pseudocode, and then evaluate that symbolically with some sample lists.
  94. </p>
  95. <hr size="1">
  96. <p>
  97. <font size="-1">
  98. This document was generated on <i>December 10, 2012</i> using <a href="http://www.nongnu.org/texi2html/"><i>texi2html 1.82</i></a>.
  99. </font>
  100. <br>
  101. </p>
  102. </body>
  103. </html>