gray-extended-1.2: Gray encoding schemes

Portabilityportable
Stabilityexperimental
Maintaineramy@nualeargais.ie
Safe HaskellSafe-Inferred

Codec.Gray

Description

Gray encoding schemes. A Gray code is a list of values such that two successive values differ in only one digit. Usually the term Gray code refers to the Binary Reflected Gray code (BRGC), but non-binary Gray codes have also been discovered. Some Gray codes are also cyclic: the last and first values differ in only one digit.

Synopsis

Documentation

grayCodes :: Int -> [[Bool]]Source

grayCodes k generates the list of Binary Reflected Gray Code (BRGC) numbers of length k. This code is cyclic.

naryGrayCodes :: [a] -> Int -> [[a]]Source

naryGrayCodes xs k generates a non-Boolean (or n-ary) Gray code of length k using the elements of x as digits. This code is cyclic.

Ex: naryGrayCodes 012 4 generates a ternary Gray code that is four digits long.