summaryrefslogtreecommitdiff
path: root/prolog/problems/lists/permute_2/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'prolog/problems/lists/permute_2/common.py')
-rw-r--r--prolog/problems/lists/permute_2/common.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/prolog/problems/lists/permute_2/common.py b/prolog/problems/lists/permute_2/common.py
index 55c2b48..cbd46d5 100644
--- a/prolog/problems/lists/permute_2/common.py
+++ b/prolog/problems/lists/permute_2/common.py
@@ -28,6 +28,7 @@ hint_type = {
'predicate_always_false': Hint('predicate_always_false'),
'base_case': Hint('base_case'),
'recursive_case': Hint('recursive_case'),
+ 'no_insert_or_delete': Hint('no_insert_or_delete'),
'timeout': Hint('timeout'),
'base_case_arbitrary': Hint('base_case_arbitrary'),
'unsuccessful_conc_use': Hint('unsuccessful_conc_use'),
@@ -105,7 +106,10 @@ def hint(code, aux_code):
# base cases work, the recursive doesn't (but it doesn't timeout)
# this may be left as the last, most generic hint
if not prolog.engine.ask_truth(engine_id, 'permute([qa,qb], [qb,qa])'):
- return [{'id': 'recursive_case'}]
+ if prolog.util.Token('NAME', 'insert') in tokens or prolog.util.Token('NAME', 'del') in tokens:
+ return [{'id': 'recursive_case'}]
+ else:
+ return [{'id': 'no_insert_or_delete'}]
except socket.timeout as ex:
return [{'id': 'timeout'}]