I am new to functional programming myself so these are just a few thoughts.
There's an interesting example of a Ray Tracer in F# that illustrates some of the strengths of functional programming, namely higher-order functions, recursion, parallelism, and pattern matching. Extending some of those concepts it would seem that raster math is one key area in GIS that functional programming might be particularly suited for.
edit: Here's another example from the same site: Rule 30 Cellular Automata
Another thought is that you don't have to write your entire program in F#. You can have the main program written in C# and create projects/assemblies in F# that solve specific functional programming problems. I've read you can also use ILMerge to merge C# and F# into one executable/assembly.
Lastly, there are a lot of functional programming things you can do in C# with LINQ, through its use of lambda expressions, higher order functions (Select
, Where
, etc), sequence pattern matching, etc.
R
and Mathematica, which provide many GIS-related examples.