Replace.html 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  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.3 Replace</title>
  14. <meta name="description" content="avram - a virtual machine code interpreter: B.3 Replace">
  15. <meta name="keywords" content="avram - a virtual machine code interpreter: B.3 Replace">
  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="Replace"></a>
  40. <table cellpadding="1" cellspacing="1" border="0">
  41. <tr><td valign="middle" align="left">[<a href="Insert.html#Insert" title="Previous section in reading order"> &lt; </a>]</td>
  42. <td valign="middle" align="left">[<a href="Transition.html#Transition" 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="Replace-1"></a>
  58. <h2 class="section">B.3 Replace</h2>
  59. <a name="index-replace-2"></a>
  60. <p>This code is needed in the discussion of assignment in <a href="Assignment.html#Assignment">Assignment</a>.
  61. where it serves as a solution to equation <em>E0</em>. The idea is that
  62. the function takes an argument of the form
  63. <code>((<var>locations</var>,<var>values</var>),<var>store</var>)</code> and returns the
  64. store with the values stored at the locations indicated.
  65. </p>
  66. <table><tr><td>&nbsp;</td><td><pre class="example">
  67. locations = compose(left,compose(left,argument))
  68. values = compose(right,compose(left,argument))
  69. store = compose(right,argument)
  70. replace =
  71. refer conditional(
  72. store,
  73. (
  74. conditional(
  75. compose(left,locations),
  76. (
  77. conditional(
  78. compose(right,locations),
  79. (
  80. (hired meta)(
  81. self,
  82. couple(
  83. (hired fan right)(locations,values),
  84. (hired meta)(
  85. self,
  86. couple(
  87. (hired fan left)(locations,values),
  88. store)))),
  89. couple(
  90. (hired meta)(
  91. self,
  92. couple(
  93. couple(compose(left,locations),values),
  94. compose(left,store))),
  95. compose(right,store)))),
  96. conditional(
  97. compose(right,locations),
  98. (
  99. couple(
  100. compose(left,store),
  101. (hired meta)(
  102. self,
  103. couple(
  104. couple(compose(right,locations),values),
  105. compose(right,store)))),
  106. values)))),
  107. (hired meta)(
  108. self,
  109. couple(couple(locations,values),constant (nil,nil)))))
  110. </pre></td></tr></table>
  111. <hr size="1">
  112. <p>
  113. <font size="-1">
  114. This document was generated on <i>December 10, 2012</i> using <a href="http://www.nongnu.org/texi2html/"><i>texi2html 1.82</i></a>.
  115. </font>
  116. <br>
  117. </p>
  118. </body>
  119. </html>