Advertisement
Guest User

Untitled

a guest
May 5th, 2015
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.51 KB | None | 0 0
  1. create(N,L):-
  2. create_list(N,[],L).
  3.  
  4. create_list(0,L,L).
  5. create_list(N,R,L):-
  6. N>0,
  7. N1=N-1,
  8. create_list(N1,[N|R],L).
  9.  
  10. create(N,L):-
  11. M is 2*N,
  12. create_list(N,M,L).
  13.  
  14. create_list(N,M,[N|R]):-
  15. N < M,
  16. N1 = N+1, % note: check if your Prolog accepts is/2 instead
  17. create_list(N1,M,R).
  18. create_list(M,M,[]).
  19.  
  20. create(From,Zs):-
  21. To #= 2*From-1,
  22. list_from_to(Zs,From,To).
  23.  
  24. ?- create(4,Zs).
  25. Zs = [4,5,6,7] ;
  26. false.
  27.  
  28. ?- create(N,[4,5,6,7]).
  29. N = 4.
  30.  
  31. ?- create(N,[4,_,_,_]).
  32. N = 4.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement