O'Reilly logo

Functional Programming in C#: Classic Programming Techniques for Modern Projects by Oliver Sturm

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

FINDING LIKELY CANDIDATES FOR FUNCTIONAL PROGRAMMING

This is a question that users of Microsoft’s new F# language have to deal with all the time: where in your architecture are the places where it makes sense to use F#? Opinions on this vary wildly — some people think it should be restricted to certain science-intensive parts of the code, whereas others like to stress that F# is a general purpose programming language just like others on .NET. Questions of tooling are important in the area of F# as well, because Visual Studio support for things like UI designers isn’t available so far.

Shades of Grey

In C#, and perhaps in F#, the question really needs to be what disciplines to use for particular areas of your code, or how strictly to adhere to certain ideas. These considerations are not new, but perhaps more attention must be paid in these days of hybrid languages and programming environments.

In the past, a consideration might have been about typing. Generally, C# aims to be a strictly typed language, and with the advent of generics this focus became even more pronounced. Nevertheless, there are situations when it seems like a good idea to work with an untyped list of objects, perhaps as implemented by the ArrayList type. In .NET 4.0 times, this may overlap with scenarios where the use of dynamic programming features, or even direct interfacing with DLR (Dynamic Language Runtime) is considered.

With functional programming, you need to make similar decisions. Object orientation ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required