diff options
Diffstat (limited to 'prolog/problems/lists/conc_3/common.py')
-rw-r--r-- | prolog/problems/lists/conc_3/common.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/prolog/problems/lists/conc_3/common.py b/prolog/problems/lists/conc_3/common.py index ce81bbe..3ed35bc 100644 --- a/prolog/problems/lists/conc_3/common.py +++ b/prolog/problems/lists/conc_3/common.py @@ -25,6 +25,7 @@ hint_type = { 'base_case': Hint('base_case'), 'timeout': Hint('timeout'), 'final_hint': Hint('final_hint'), + 'second_list_iteration': Hint('second_list_iteration'), } test_cases = [ @@ -76,12 +77,21 @@ def hint(code, aux_code): # recursion is getting bigger and bigger +# # missing/failed base case +# if not prolog.engine.ask_truthTO(engine_id, 'conc([], [qa,qb,qc], [qa,qb,qc])'): +# return [{'id': 'base_case'}] + + # shortening the second list instead of first list + if prolog.engine.ask_truthTO(engine_id, + 'conc([a,b,c], [1,2,3,4], L), (L = [1,2,3,4,a,b,c] ; L = [4,3,2,1,a,b,c])'): + return [{'id': 'second_list_iteration'}] + # missing/failed base case - if not prolog.engine.ask_truthTO(engine_id, 'memb(qq, [qq,_,_,_])'): + if not prolog.engine.ask_one(engine_id, 'conc([], [qa,qb,qc], [qa,qb,qc])'): return [{'id': 'base_case'}] # target predicate seems to always be false - if not prolog.engine.ask_truth(engine_id, 'memb(_, [_,_,_,_,_,_])'): + if not prolog.engine.ask_truth(engine_id, 'conc([_,_,_,_,_,_], [_,_,_], _)'): return [{'id': 'predicate_always_false'}] except socket.timeout as ex: |