========== Flow ========== .. versionadded:: 0.10.1 The ``flow`` macros allow directing the flow of a program with greater ease. Macros ====== .. _case: .. _switch: case ----- ``case`` allows you to decide based on the value of a variable. Usage: `(case variable val1 (body1) val2 (body2) ...)` Example: .. code-block:: hy (require [hy.contrib.flow [case]]) (defn temp-commenter [temp] (case temp -10 (print "It's freezing. Turn up the thermostat!") 15 (print "Sounds about average.") 45 (print "Holy smokes. It's hot in here!") (print "I don't even know."))) switch ----- ``switch`` allows you to run code based on the value of a variable. A final extra body allows for a default case. Usage: `(switch var (cond1) (body1) (cond2) (body2) ... )` Example: .. code-block:: hy (require [hy.contrib.flow [switch]]) (defn temp-commenter [temp] (switch temp (<= 10.0) (print "Better wear a jacket!") (<= 25.0) (print "Brace yourselves. Summer is coming!") (<= 30.0) (print "Time to get some ice cream.") (print "Sounds like a heat wave")))