Skip to content

Instantly share code, notes, and snippets.

@bbqtd
Last active August 29, 2015 14:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bbqtd/cbe30f6d4b67868d1d94 to your computer and use it in GitHub Desktop.
Save bbqtd/cbe30f6d4b67868d1d94 to your computer and use it in GitHub Desktop.
max([H | T], R) :-
max(T, H, R).
max([], R, R).
max([H | T], Temp, R) :-
H >= Temp,
!,
max(T, H, R).
max([_ | T], Temp, R) :-
max(T, Temp, R).
min([H | T], R) :-
min(T, H, R).
min([], R, R).
min([H | T], Temp, R) :-
H =< Temp,
!,
min(T, H, R).
min([_ | T], Temp, R) :-
min(T, Temp, R).
swap([], _, _, []).
swap([Max | T], Min, Max, [Min | NewT]) :-
!,
swap(T, Min, Max, NewT).
swap([Min | T], Min, Max, [Max | NewT]) :-
!,
swap(T, Min, Max, NewT).
swap([H | T], Min, Max, [H | NewT]) :-
swap(T, Min, Max, NewT).
swap_max_and_min(L, R) :-
max(L, Max),
min(L, Min),
swap(L, Min, Max, R).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment