# core.logic

## generalize the notion of hash for robustness

### Details

• Type: Defect
• Status: Closed
• Priority: Major
• Resolution: Completed
• Affects Version/s: None
• Fix Version/s: None
• Component/s: None
• Labels:
None

### Description

The second nom/hash throws an exception, because the nom/hash constraint is ran before the predc one.

```(is (= (run* [q]
(nom/fresh [x]
(fresh [y]
(predc y nom? `nom?)
(nom/hash y x)
(== y 'foo))))
()))

(is (= (run* [q]
(nom/fresh [x]
(fresh [y]
(nom/hash y x)
(predc y nom? `nom?)
(== y 'foo))))
()))```

Perhaps, we can generalize the notion of hash.

### Attachments

1. logic-102.diff
07/Jan/13 12:39 PM
5 kB
2. refactoring.diff
08/Jan/13 7:04 AM
2 kB

### Activity

David Nolen made changes -
Field Original Value New Value
Description The second nom/hash throws an exception, because the nom/hash constraint is ran before the predc one.
{code}
(is (= (run* [q]
(nom/fresh [x]
(fresh [y]
(predc y nom? `nom?)
(nom/hash y x)
(== y 'foo))))
()))
(is (= (run* [q]
(nom/fresh [x]
(fresh [y]
(nom/hash y x)
(predc y nom? `nom?)
(== y 'foo))))
()))
{code}

Perhaps, we can generalize the notion of hash.
The second nom/hash throws an exception, because the nom/hash constraint is ran before the predc one.
{code}
(is (= (run* [q]
(nom/fresh [x]
(fresh [y]
(predc y nom? `nom?)
(nom/hash y x)
(== y 'foo))))
()))

(is (= (run* [q]
(nom/fresh [x]
(fresh [y]
(nom/hash y x)
(predc y nom? `nom?)
(== y 'foo))))
()))
{code}

Perhaps, we can generalize the notion of hash.
David Nolen made changes -
 Status Open [ 1 ] Resolved [ 5 ] Resolution Completed [ 1 ]
David Nolen made changes -
 Resolution Completed [ 1 ] Status Resolved [ 5 ] Reopened [ 4 ]
David Nolen made changes -
 Comment
 Attachment logic-102.diff [ 11797 ]
David Nolen made changes -
 Status Reopened [ 4 ] Resolved [ 5 ] Resolution Completed [ 1 ]
 Attachment refactoring.diff [ 11799 ]
David Nolen made changes -
 Status Resolved [ 5 ] Closed [ 6 ]

Vote (0)
Watch (1)

• Created:
Updated:
Resolved: