Traffic Flow functional way
This looks very clean and simple, which is always* a good thing when programming.  First, you don't save state, nor do you have long functions--each function does what says in a couple lines.  One nitpick is your naming:


let isGreen currentTime switchItme



switchItme should probably be switchTime.

You indented the conditions of your match statement too far.  That should be indented as:

match (isGreen currentTime switchTime) with
| false -&gt; if (currentTime % switchTime) &lt; 0.01 then switchTime else currentTime % switchTime
| _ -&gt; 0.0


In F#, you typically don't use if statements, except for choosing a path based on the value of a boolean literal, and I only do that when I can use it like a C# ternary.  I would write the match in your second function as:

match (isGreen currentTime switchTime) with
| true -&gt; 0.0
| false -&gt;
    match (currentTime % switchTime) with
    | c when c &lt; 0.01 -&gt; switchTime
    | _ -&gt; currentTime % switchTime


F# has a printfn function that is the same as printf, except it prints a newline at the end.  You should use this instead of manually specifying you want a newline with printf "...\n"

* Well, sometimes complicated, fast code is better in performance-critical environments.