<!-- 
RSS generated by JIRA (4.4#649-r158309) at Thu May 23 13:05:15 CDT 2013

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
For example:
http://dev.clojure.org/jira/si/jira.issueviews:issue-xml/LOGIC-68/LOGIC-68.xml?field=key&field=summary
-->
<rss version="0.92" >
<channel>
    <title>Clojure JIRA</title>
    <link>http://dev.clojure.org/jira</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>4.4</version>
        <build-number>649</build-number>
        <build-date>25-07-2011</build-date>
    </build-info>

<item>
            <title>[LOGIC-68] add Prolog meta-logical predicates bagof, setof, findall</title>
                <link>http://dev.clojure.org/jira/browse/LOGIC-68</link>
                <project id="10020" key="LOGIC">core.logic</project>
                        <description>&lt;p&gt;This can be done by annotating logic variables and embedding a run within a run by passing in the current substitution, running on it, and extracting out the reified values and unifying it back into the current substitution.&lt;/p&gt;</description>
                <environment></environment>
            <key id="15826">LOGIC-68</key>
            <summary>add Prolog meta-logical predicates bagof, setof, findall</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="3" iconUrl="http://dev.clojure.org/jira/images/icons/priority_major.gif">Major</priority>
                    <status id="1" iconUrl="http://dev.clojure.org/jira/images/icons/status_open.gif">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="dnolen">David Nolen</assignee>
                                <reporter username="dnolen">David Nolen</reporter>
                        <labels>
                    </labels>
                <created>Fri, 16 Nov 2012 13:20:26 -0600</created>
                <updated>Wed, 13 Feb 2013 13:50:21 -0600</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                        <comments>
                    <comment id="29956" author="abrooks" created="Fri, 16 Nov 2012 13:23:57 -0600"  >&lt;p&gt;I&apos;m working on understanding the answers given for this StackOverflow question:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/7647758/prolog-findall-implementation&quot;&gt;http://stackoverflow.com/questions/7647758/prolog-findall-implementation&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="29957" author="abrooks" created="Fri, 16 Nov 2012 22:02:47 -0600"  >&lt;p&gt;For discussion &#8212; Initial working patch supporting nested version of &apos;run-a/&apos;run-a*. Binding symbols must match existing lvars with which vectors of all returned values will be unified.&lt;/p&gt;</comment>
                    <comment id="29958" author="abrooks" created="Sat, 17 Nov 2012 16:07:32 -0600"  >&lt;p&gt;Should we provide wrappers that emulate each of bagof, setof and findall?&lt;/p&gt;

&lt;p&gt;I&apos;m still not sold on the current names run-a/run-a*. &quot;a&quot; is really an internal implementation detail. Expect a revised patch with better names when I think of them (any ideas?).&lt;/p&gt;</comment>
                    <comment id="29960" author="dnolen" created="Sat, 17 Nov 2012 20:32:53 -0600"  >&lt;p&gt;Yes please. Yeah I don&apos;t think the names of run-a/etc are critical - implementation details for now until we really understand the implications and it gets some use.&lt;/p&gt;</comment>
                    <comment id="30001" author="abrooks" created="Wed, 21 Nov 2012 10:51:16 -0600"  >&lt;p&gt;I&apos;m considering simply making &lt;tt&gt;run&lt;/tt&gt;/&lt;tt&gt;run*&lt;/tt&gt; conditionalized on the first argument, using the nesting form if we are being called with a substitution map as the first argument.&lt;/p&gt;

&lt;p&gt;My current understanding of &lt;tt&gt;bagof&lt;/tt&gt; and &lt;tt&gt;findall&lt;/tt&gt; makes me think they&apos;re not worth implementing beyond the nesting &lt;tt&gt;run&lt;/tt&gt; functionality.&lt;/p&gt;

&lt;p&gt;I&apos;m still thinking about &lt;tt&gt;setof&lt;/tt&gt; which is quite useful and will want help from the infrastructure to be fully efficient.&lt;/p&gt;

&lt;p&gt;I&apos;ll submit a new patch after Thanksgiving.&lt;/p&gt;</comment>
                    <comment id="30002" author="dnolen" created="Wed, 21 Nov 2012 10:57:21 -0600"  >&lt;p&gt;Excellent, thanks much.&lt;/p&gt;</comment>
                    <comment id="30175" author="abrooks" created="Thu, 6 Dec 2012 00:30:03 -0600"  >&lt;p&gt;I have not forgotten, I&apos;ve just gotten swamped.&lt;/p&gt;

&lt;p&gt;There&apos;s a small chance I&apos;ll get to this before Christmas, otherwise, it&apos;s after the new year.&lt;/p&gt;</comment>
                    <comment id="30547" author="abrooks" created="Mon, 4 Feb 2013 17:50:05 -0600"  >&lt;p&gt;After a car accident, travel to London and Morocco, getting caught up at work and getting caught up on the apparently very busy stream of core.logic activity (great work!), I&apos;m back on this.&lt;/p&gt;

&lt;p&gt;I found some bugs in my implementation after porting the patch forwards and realized these issues highlighted my sloppy understanding of some of the semantics I had created.&lt;/p&gt;

&lt;p&gt;I&apos;m fairly convinced now that we don&apos;t want to name this after &lt;tt&gt;run&lt;/tt&gt; or &lt;tt&gt;run*&lt;/tt&gt;. It&apos;s too much of a strain to try to make it mean the same thing in a nested context.&lt;/p&gt;

&lt;p&gt;The current mechanism is still not quite a match for &lt;tt&gt;findall&lt;/tt&gt;/&lt;tt&gt;bagof&lt;/tt&gt;/&lt;tt&gt;setof&lt;/tt&gt;, however, so I&apos;m seeing what a good fit would be. I&apos;ll post meaningful thoughts for review as I have them.&lt;/p&gt;</comment>
                    <comment id="30589" author="dnolen" created="Wed, 13 Feb 2013 13:50:21 -0600"  >&lt;p&gt;Glad to hear you&apos;re OK! No worries, will take a patch whenever you get around to one.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="11683" name="0001-LOGIC-68-Add-run-a-run-a-logic-functions-to-support-.patch" size="1720" author="abrooks" created="Fri, 16 Nov 2012 22:02:47 -0600" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>
</channel>
</rss>