pythological/kanren

membero inconsistent with python

majidaldo opened this issue · 1 comments

you have to tuple or list the string to get the expected output. it doesn't work with set/frozenset or a (bare) string.

q = var()
In: run(10,  q , membero(q,  set('sdfsdf') ) )
Out: ()

i understand it want to see a 'cons' but why isn't it not just using __iter__ if it's not a cons ?

i understand it want to see a 'cons' but why isn't it not just using __iter__ if it's not a cons ?

Because the order of elements is critical; that's why set shouldn't work. If frozenset doesn't work, then we need to determine whether or not that's due to missing support in cons, and add it if it is. Regardless, that's an issue for the cons project, or something the user needs to implement.