Advertisement
Guest User

Untitled

a guest
May 31st, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 1.41 KB | None | 0 0
  1.  
  2. bet(N, M, K) :- N =< M, K = N.
  3. bet(N, M, K) :- N < M, N1 is N+1, bet(N1, M, K).
  4.  
  5. at([N|Rest], I, K) :- I == 0, K = N.
  6. at([N|Rest], I, K) :- I1 is I - 1, at(Rest, I1, K).
  7.  
  8. insert_arg(LastUsed, LastLocal, FlagIn, Arg, LastLocal, 1) :-
  9.     bet(0, LastUsed, K), at([11, 12, 13], K, Arg).
  10. insert_arg(LastUsed, LastLocal, FlagIn, Arg, LastLocal, FlagIn) :- LastUsed1 is LastUsed + 1,
  11.     bet(LastUsed1, LastLocal, K), at([21, 22, 23], K, Arg).
  12. insert_arg(LastUsed, LastLocal, FlagIn, Arg, LastLocal1, 0) :- LastLocal1 is LastLocal + 1,
  13.     at([31, 32, 33], LastLocal1, Arg).
  14.  
  15.  
  16. build_arg_list(0, LastUsed, LastLocal, 0, [T], LastLocal) :-
  17.     write(0), write('Kla1'),
  18.     bet(0, LastLocal, K), at([11, 12, 13], K, T).
  19.  
  20. build_arg_list(0, LastUsed, LastLocal, 1, [Arg], RetLastLocal) :-
  21.     write(0), write('Kla2'),
  22.     insert_arg(LastUsed, LastLocal, 1, Arg, RetLastLocal, FlagOut).
  23.  
  24. build_arg_list(N, LastUsed, LastLocal, Flag, [Arg|List], RetLastUsed) :-
  25.     N > 0,
  26.     write(N), write('Kla3 '),
  27.     N1 is N-1,
  28.     insert_arg(LastUsed, LastLocal, Flag, Arg, RetLastLocal, FlagOut),
  29.     write(N), write('ins '),
  30.     write(LastUsed), write('   '),
  31.     write(LastLocal), write('   '),
  32.     write(Flag), write('   '),
  33.     write(Arg), write('   '),
  34.     write(RetLastLocal), write('   '),
  35.     write(FlagOut), write('   '),
  36.     build_arg_list(N1, RetLastUsed, RetLastLocal, FlagOut, List, RetLastUsed).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement