Merge pull request #468 from notoria/cont

Enhanced shift/1
This commit is contained in:
Mark Thom
2020-05-07 14:26:34 -03:00
committed by GitHub
2 changed files with 3 additions and 7 deletions

View File

@@ -10,7 +10,7 @@ shift(Ball) :-
'$nextEP'(first, E, P), '$nextEP'(first, E, P),
get_chunks(E, P, L), get_chunks(E, P, L),
( L == [] -> ( L == [] ->
Cont = none Cont = cont(true)
; Cont = cont(call_continuation(L)) ; Cont = cont(call_continuation(L))
), ),
'$write_cont_and_term'(_, _, Cont, Ball), '$write_cont_and_term'(_, _, Cont, Ball),

View File

@@ -136,18 +136,14 @@ activate(Wrapper,Worker,T) :-
delim(Wrapper,Worker,Table) :- delim(Wrapper,Worker,Table) :-
% debug(tabling, 'ACT: ~p on ~p', [Wrapper, Table]), % debug(tabling, 'ACT: ~p on ~p', [Wrapper, Table]),
reset(Worker,SourceCall,Continuation), reset(Worker,SourceCall,Continuation),
( Continuation == none, var(SourceCall) -> ( Continuation = none ->
( add_answer(Table,Wrapper) ( add_answer(Table,Wrapper)
-> true %debug(tabling, 'ADD: ~p', [Wrapper]) -> true %debug(tabling, 'ADD: ~p', [Wrapper])
; %debug(tabling, 'DUP: ~p', [Wrapper]), ; %debug(tabling, 'DUP: ~p', [Wrapper]),
fail fail
) )
; ;
( Continuation = cont(Cont) -> Continuation = cont(Cont),
true
; Continuation = none ->
Cont = true
),
SourceCall = call_info(_,SourceTable), SourceCall = call_info(_,SourceTable),
TargetCall = call_info(Wrapper,Table), TargetCall = call_info(Wrapper,Table),
Dependency = dependency(SourceCall,Cont,TargetCall), Dependency = dependency(SourceCall,Cont,TargetCall),