RosettaCodeData/Task/Gray-code/Prolog/gray-code-1.pro

11 lines
159 B
Prolog
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
to_gray(N, G) :-
N0 is N >> 1,
G is N xor N0.
from_gray(G, N) :-
( G > 0
-> S is G >> 1,
from_gray(S, N0),
N is G xor N0
; N is G ).