<div dir="auto"><div class="gmail_quote" dir="auto"><div dir="ltr">Jeff,</div><div dir="auto"><div dir="auto"><br></div><div dir="auto">Another technique that is commonly overlooked is to compile a `fact_table` into a dynamic library then using Mercury's runtime linking facilities to swap out fact tables at runtime.<div dir="auto"><br></div><div dir="auto">More info: <a href="http://lists.mercurylang.org/archives/users/2002-April/001683.html" rel="noreferrer noreferrer noreferrer" target="_blank">http://lists.mercurylang.org/archives/users/2002-April/001683.html</a></div><div dir="auto"><br></div><div dir="auto">Aistis Raulinaitis</div><br><div class="gmail_extra" dir="auto"><br><div class="gmail_quote">On Nov 6, 2018 06:37, "Jeffrey Brown" <<a href="mailto:jeffbrown.the@gmail.com" rel="noreferrer noreferrer noreferrer" target="_blank">jeffbrown.the@gmail.com</a>> wrote:<br type="attribution"><blockquote class="m_-6351542692914763715m_-6017311965224160636m_-4916715468416653358quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thanks! I had no idea I should read that.<div><br></div><div>What kind of data structure does Mercury itself use to represent rules? I'd like to be able to search for information in any direction -- i.e., using the terminology of maps, any member of any relationship could be treated as a key or a value.</div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Nov 6, 2018 at 12:41 AM Julien Fischer <<a href="mailto:jfischer@opturion.com" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">jfischer@opturion.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Hi Jeff,<br>
<br>
On Mon, 5 Nov 2018, Jeffrey Brown wrote:<br>
<br>
> I want to write a program in Mercury that lets a user add (simple<br>
> nonrecursive) rules at runtime, like "Bob knows Mary" or "eukaryotes<br>
> use oxygen". Is it possible?<br>
<br>
If you mean, is it possible to do it as in Prolog, using assert/1 and<br>
retract/1 to modify the clause database, then no.  Mercury does not<br>
support that.<br>
<br>
In Mercury you would need to define your own data structures to hold the<br>
rules added a runtime (or use some of the ones in the standard library.)<br>
<br>
The section "Assert and retract" in the Prolog to Mercury transition<br>
guide has further details.<br>
<br>
Julien.<div class="m_-6351542692914763715m_-6017311965224160636m_-4916715468416653358signature-text"><br>
</div></blockquote></div><div class="m_-6351542692914763715m_-6017311965224160636m_-4916715468416653358signature-text"><br clear="all"><div><br></div>-- <br><div dir="ltr" class="m_-6351542692914763715m_-6017311965224160636m_-4916715468416653358m_-817376496735665449gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Jeff Brown | Jeffrey Benjamin Brown</div><div dir="ltr"><a href="https://msu.edu/~brown202/" style="font-size:12.8px" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">Website</a>   |   <a href="https://www.facebook.com/mejeff.younotjeff" style="font-size:12.8px" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">Facebook</a>   |   <a href="https://www.linkedin.com/in/jeffreybenjaminbrown" style="font-size:12.8px" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">LinkedIn</a><span style="font-size:12.8px">(spammy, so I often miss messages here)   </span><span style="font-size:12.8px">|</span><span style="font-size:12.8px">   </span><a href="https://github.com/jeffreybenjaminbrown" style="font-size:12.8px" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">Github</a><span style="font-size:12.8px">   </span></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
_______________________________________________<br>
users mailing list<br>
<a href="mailto:users@lists.mercurylang.org" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">users@lists.mercurylang.org</a><br>
<a href="https://lists.mercurylang.org/listinfo/users" rel="noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">https://lists.mercurylang.org/listinfo/users</a><br>
</div></blockquote></div><br><br></div></div></div>
</div></div>