Skip to content

Instantly share code, notes, and snippets.

@zabirauf
Last active July 6, 2017 06:34
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 zabirauf/abb8f16ad409c109556d708d79a529ea to your computer and use it in GitHub Desktop.
Save zabirauf/abb8f16ad409c109556d708d79a529ea to your computer and use it in GitHub Desktop.
type TrafficLightState =
{ red: true, yellow: false, green: false } |
{ red: true, yellow: true, green: false } |
{ red: false, yellow: false, green: true } |
{ red: false, yellow: true, green: false }
function nextTrafficLightState(
trafficLight: TrafficLightState): TrafficLightState {
if (trafficLight.red && trafficLight.yellow) {
return { red: false, yellow: false, green: true };
} else if (trafficLight.red) {
return { red: true, yellow: true, green: false };
} else if (trafficLight.yellow) {
return { red: true, yellow: false, green: false };
} else if (trafficLight.green) {
return { red: false, yellow: true, green: false };
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment