background preloader

Functional Programming

Facebook Twitter

GitHub - louthy/language-ext: C# functional language extensions and 'Erlang like' concurrency system.

Monads

Monparsing. 10 reasons to use the F# runtime in your C# app. Most people have at least noticed that F# shipped with Visual Studio 2010.

10 reasons to use the F# runtime in your C# app

I mean, you click File –> New Project and there's the F# project templates, you can't miss them. What most people probably didn't realize is that even if you don't use the F# language or aren't even interested in it, you can still profit from using the F# runtime in C# / VB.NET projects. The F# runtime is just a regular DLL named FSharp.Core.dll you can reference just like any other assembly. It's available for .NET 2.0 and 4.0 (separate DLLs). This availability for .NET 2.0 is particularly valuable for projects that for some reason can't be upgraded to newer versions of .NET. Granted, the library is designed to be used from F#, so sometimes it looks weird in C#, but we'll see how to work around some of the oddities with FSharpx. Let's see some of the things FSharp.Core gives you, in no particular order: Tuples As usual, keep in mind that tuples are essentially anonymous. Persistent collections let empty = [] or: Async.

Www.cs.nott.ac.uk/~gmh/fold.pdf. Richard Bird Philip Wadler - Introduction to Functional Programming.

Haskell

To Dissect a Mockingbird: A Graphical Notation for the Lambda Calculus with Animated Reduction. To Dissect a Mockingbird: A Graphical Notation for the Lambda Calculus with Animated Reduction David C Keenan, 27-Aug-1996 last updated 1-Apr-2014 116 Bowman Parade, Bardon QLD 4065, Australia Abstract The lambda calculus, and the closely related theory of combinators, are important in the foundations of mathematics, logic and computer science.

This paper provides an informal and entertaining introduction by means of an animated graphical notation. Introduction In the 1930s and 40s, around the birth of the "automatic computer", mathematicians wanted to formalise what we mean when we say some result or some function is "effectively computable", whether by machine or human. Several such systems were invented and for the most part looked entirely unlike each other. The Turing machine is based on the idea of a tape of unbounded length, with a head which can move left or right along the tape reading and writing symbols. You may say, "So what? " All we need is function abstraction and application.

Theorems for free. ICFP 2009. C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals, Chapter 1 of 13. Welcome to a new technical series on Channel 9 folded into a different kind of 9 format: C9 Lectures.

C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals, Chapter 1 of 13

These are what you think they are, lectures. They are not conversational in nature (like most of what you're used to on 9), but rather these pieces are entirely focused on education, coming to you in the form of a series of high quality technical lectures (1 or more per topic) on a single topic. We kick off C9 Lectures with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. Erik Meijer (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders). Lecture Context: Over the past two years, you've learned a fair amount about the functional programming paradigm's foray into general purpose imperative progamming languages (LINQ, Lambda's, etc in C# and VB.NET).

Dr. In Chapter 1, Dr. Welcome to C9 Lectures.