Member.html 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  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: 2.7.11.2 Member</title>
  14. <meta name="description" content="avram - a virtual machine code interpreter: 2.7.11.2 Member">
  15. <meta name="keywords" content="avram - a virtual machine code interpreter: 2.7.11.2 Member">
  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="Member"></a>
  40. <table cellpadding="1" cellspacing="1" border="0">
  41. <tr><td valign="middle" align="left">[<a href="Compare.html#Compare" title="Previous section in reading order"> &lt; </a>]</td>
  42. <td valign="middle" align="left">[<a href="Iteration.html#Iteration" 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="Virtual-Machine-Specification.html#Virtual-Machine-Specification" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
  45. <td valign="middle" align="left">[<a href="Predicates.html#Predicates" title="Up section"> Up </a>]</td>
  46. <td valign="middle" align="left">[<a href="Library-Reference.html#Library-Reference" 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="Member-1"></a>
  58. <h4 class="subsubsection">2.7.11.2 Member</h4>
  59. <p>Another built in predicate function has the virtual code shown below.
  60. <a name="index-member"></a>
  61. </p>
  62. <dl compact="compact">
  63. <dt> <em>T20</em></dt>
  64. <dd><p>[[<code>member</code>]] = <code>((nil,nil),((nil,nil),nil))</code>
  65. </p></dd>
  66. </dl>
  67. <p>As the mnemonic suggests, the function implemented by this code detects
  68. whether a given item is a member of a list. The left side of its
  69. argument is the item to be detected, and the right side is the list that
  70. may or may not contain it. Lists are represented as explained in
  71. <a href="Representation-of-Numeric-and-Textual-Data.html#Representation-of-Numeric-and-Textual-Data">Representation of Numeric and Textual Data</a>.
  72. </p>
  73. <p>The virtual code semantics can be specified by these three properties of
  74. the operator.
  75. </p>
  76. <dl compact="compact">
  77. <dt> <em>P19</em></dt>
  78. <dd><p>[[<code>member</code>]] <code>(<var>x</var>,nil)</code> = <code>nil</code>
  79. </p></dd>
  80. <dt> <em>P20</em></dt>
  81. <dd><p>[[<code>member</code>]] <code>(<var>x</var>,(<var>x</var>,<var>y</var>))</code> = <code>(nil,nil)</code>
  82. </p></dd>
  83. <dt> <em>P21</em></dt>
  84. <dd><p>For distinct trees <code><var>x</var></code> and <code><var>y</var></code>, [[<code>member</code>]] <code>(<var>x</var>,(<var>y</var>,<var>z</var>))</code> =
  85. [[<code>member</code>]] <code>(<var>x</var>,<code>z</code>)</code>
  86. </p></dd>
  87. </dl>
  88. <p>As in the case of <code>compare</code>, the implementation of <code>member</code> is
  89. well optimized in C, so this form is to be preferred over an ad hoc
  90. construction of a membership testing function in virtual code.
  91. </p>
  92. <hr size="1">
  93. <p>
  94. <font size="-1">
  95. This document was generated on <i>December 10, 2012</i> using <a href="http://www.nongnu.org/texi2html/"><i>texi2html 1.82</i></a>.
  96. </font>
  97. <br>
  98. </p>
  99. </body>
  100. </html>