Skip to content

Commit 1546b4c

Browse files
author
Omar Abdelwanis
committed
Merged in unstable/SW-17379-improve-functor-representation (pull request yuce#3)
SW-17379 Improve functor representation in lists Approved-by: Guglielmo Gemignani <[email protected]>
2 parents 5a02e25 + 9e0dc2b commit 1546b4c

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

pyswip/prolog.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -189,8 +189,8 @@ def query(cls, query, maxresult=-1, catcherrors=True, normalize=True):
189189

190190

191191
def normalize_values(values):
192-
from pyswip.easy import Atom
193-
if isinstance(values, Atom):
192+
from pyswip.easy import Atom, Functor
193+
if isinstance(values, (Atom, Functor)):
194194
return values.value
195195
elif isinstance(values, dict):
196196
return {key: normalize_values(v) for key, v in values.items()}

tests/test_prolog.py

+5
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,11 @@ def test_prolog_strings(self):
8080
p.assertz('some_string_fact("abc")')
8181
self.assertEqual([{"S": b"abc"}], list(p.query("some_string_fact(S)")))
8282

83+
def test_prolog_functor_in_list(self):
84+
p = pl.Prolog()
85+
p.assertz('f([g(a,b),h(a,b,c)])')
86+
self.assertEqual([{"L": ['g(a, b)', 'h(a, b, c)']}], list(p.query("f(L)")))
87+
8388
def test_prolog_read_file(self):
8489
"""
8590
See: https://github.com/yuce/pyswip/issues/10

0 commit comments

Comments
 (0)