InfoQ Homepage Functional Programming Content on InfoQ
-
Get a Grasp on Expression Trees
Developers familiar with functional programming languages might not need an explanation as to why expression trees are useful. For the rest of us expression trees are the most striking concept of all the new features in C# 3.0 or VB 9.0.
-
Tapping method chains with Ruby 1.9
Ruby 1.9 adds a method to all objects: tap. This method allows to elegantly inspect data that flows through chained method calls. We look at how it's implemented at where it's helpful.
-
WPF and F#
Yesterday we told you about using PHP.NET with Silverlight. The GUI framework for Silverlight, WPF, represents the future of Windows development. So it is understandable that F# developers would be looking at it with a keen eye as well.
-
Mads Torgersen: C# Futures
Floyd interviews Mads Torgersen at JAOO and they discuss the future of C# and the LINQ additions.
-
Borrowing Functional APIs from F#
The Common Language Specification ensures that any conforming .NET language can access libraries created by any other language. This means imperative languages like VB and C# can call functional libraries created primarily for F#. In fact, many can be converted directly into C# code.
-
Designing for flexibility and robustness: Asynchronous message model, OOP and Functional Programming
According to Pragmatic Programmers it is preferable in OOP to avoid design based on returning values. Michael Feathers argues that it may also be better to use the asynchronous message model that might be instrumental for improving adaptability and robustness. This maps well to the Erlang model though opposing some of the principles of pure functional programming.
-
Article: Beyond Foundations of F#
Since Robert Pickering published Foundations of F# in May, the language has grown significantly. Besides adding a host of new features, it is being moved from a research project to a fully supported, production-grade release. We asked Robert to discuss some of the new features in F#.
-
F# to Be Integrated With Visual Studio
Somasegar has announced that F# will be integrated with Visual Studio, joining Managed C++, C#, and Visual Basic as a first class on the .NET platform.
-
Longjumps, Tailcalls, Tuples for the JVM
This summer, John Rose made a series of posts described as "some exciting articles about the future of the JVM," including long jumps, tail calls and tuples. These could be folded into the Java language, but can also be seen as important for supporting other languages on the JVM, including both functional and dynamic languages.
-
Limitations of Closures in Visual Basic
In part 6 of his series on closures, Jared Parsons takes about some of the limitations of closures in Visual Basic. While it is not explicitly called out, many of these limitations may also apply to C#.
-
Performance Problems with Lambdas
The LINQ Cookbook reveals some performance issues when using lambdas instead of traditional functions.
-
Ray Tracers using C# and LINQ
Luke H. shows how to write a ray tracer using C# 3 and LINQ in about 400 lines of code.
-
Automatic Parallel Processing, Will It Work?
Larry O'Brien questions the assumption that multi-core processors and languages that can leverage them will necessarily lead to performance gains.
-
Function Memoization in C#
Pure functions, those that always return the same value for a given input, have several advantages over other functions. One of these is that their result can be saved or "memoized" so they do not need to be recalculated. Wes Dyer of the C# compiler team demonstrates a generic way to do this with C# 3.0 and closures.
-
Is C# becoming a functional language?
With the extensive functionality added to support LINQ, many people have been asking if C# and VB are becoming functional languages. Mads Torgersen, C# Language PM, answers this question in his article by the same name.