Can/does the (forward) pipe operator prevent tail call optimization?
For a parameter optimization problem at work I wrote a genetic algorithm to find some good settings because a brute-force solution is unfeasible. Unfortunately, when I return in the morning, most of the time I'm presented with a StackOverflowException . I've been using F# for quite some time now so I'm aware of TCO and the need for functions with accumulator arguments and generally use that form. After a lot of searching I think I was able to nail to the code that triggered the exception: breedPopulation alive |> simulate (generation + 1) lastTime ewma breedPopulation generates a new