Advertisement
cinnamonandrew

p3

Nov 27th, 2019
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.43 KB | None | 0 0
  1. balance([], 0).
  2. balance([H|T], C) :-
  3.     H == '(',
  4.     NC is C + 1,
  5.     balance(T, NC).
  6. balance([H|T], C) :-
  7.     H == ')',
  8.     C > 0,
  9.     NC is C - 1,
  10.     balance(T, NC).
  11.  
  12. par('(').
  13. par(')').
  14.  
  15. generate(N, N, C, C):-!.
  16. generate(N, I, C, R):-
  17.     par(X),
  18.     NI is I + 1,
  19.     generate(N, NI, [X|C], R).
  20.  
  21. back(N, R):-
  22.     generate(N, 0, [], R),
  23.     balance(R, 0).
  24.  
  25. all(N, R):-
  26.     findall(RPart, back(N, RPart), R).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement