Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/swipl -q -t run -f
- subset([], []).
- subset([E | Tail], [E | NTail]) :-
- subset(Tail, NTail).
- subset([_ | Tail], NTail) :-
- subset(Tail, NTail).
- validate(0, 1).
- validate(X, Max) :-
- Max > 1,
- Y is Max - 1,
- (
- X = Y
- ;
- validate(X, Y)
- ).
- generate(L) :-
- validate(N, 5),
- length(L, N).
- main :-
- generate(L),
- subset(['A', 'A#', 'B', 'C', 'C#', 'D',
- 'D#', 'E', 'F', 'F#', 'G', 'G#'], L),
- format("~q~n", [L]),
- fail.
- main :-
- true.
- run :-
- main, halt.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement