Advertisement
Guest User

Untitled

a guest
Apr 25th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. List1 = [1, 5, 8, - 16, 11, - 3, 3] &
  2.  
  3. negative_right (List1, [], Result)
  4. ;
  5.  
  6.  
  7. negative_right ([], Result, Result) :-
  8. !
  9. %&negative_left(Result,[],Res)
  10. ;
  11. negative_right ([H | T], Acc, Result1) :-
  12. H < 0 &
  13. ! &
  14. zeroAppend (T, H, [], Result2) &
  15. NewAcc = :lst.append (Acc, Result2) &
  16. negative_right ([], NewAcc, Result1)
  17.  
  18. ;
  19. negative_right ([H | T], Acc, Result) :-
  20. NewAcc = :lst.append (Acc, [H]) &
  21. negative_right (T, NewAcc, Result)
  22. ;
  23.  
  24. zeroAppend ([], Const_negative, Res, [Const_negative | Res]) :-
  25. !
  26. ;
  27.  
  28. zeroAppend ([H | T], Const_negative, Acc, Res) :-
  29. H <= 0 &
  30. ! &
  31. NewAcc = :lst.append (Acc, [H]) &
  32. zeroAppend (T, Const_negative, NewAcc, Res)
  33. ;
  34. zeroAppend ([H | T], Const_negative, Acc, Res) :-
  35. New_Const_negative = Const_negative + H &
  36. New_Const_negative < 0 &
  37. ! &
  38. zeroAppend ([0 | T], New_Const_negative, Acc, Res)
  39. ;
  40. zeroAppend ([], _Const_negative, _Acc, _Res) ;
  41.  
  42. %negative_left([H|T],Temp,Res):-
  43. % negative_left(T,Temp,Tempa)
  44. %
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement