Archives

12 Apr 2014
Lines of code, dependency analysis and more
12 Jan 2014
My approach to the Roman Numerals Kata
25 Oct 2013
Monoids without tears - Part 3
24 Oct 2013
Monoids without tears - Part 2
23 Oct 2013
A mostly mathless discussion of a common functional pattern
22 Jun 2013
Three ways to implement FizzBuzz
28 May 2013
Comparing some real-world metrics of C# and F# projects
27 May 2013
Cyclic dependencies: Part 2
27 May 2013
Cyclic dependencies: Part 1
26 May 2013
A recipe for a functional app, Part 3
11 May 2013
A recipe for a functional app, part 2
10 May 2013
A recipe for a functional app, part 1
12 Apr 2013
A rant against something I don't get
30 Jan 2013
Implementing While, Using, and exception handling
29 Jan 2013
Delaying a workflow externally
28 Jan 2013
Stupid method tricks
27 Jan 2013
Controlling when functions execute
26 Jan 2013
How to return multiple values at once
25 Jan 2013
Getting started with the basic builder methods
24 Jan 2013
We discover that even lists can be wrapper types
23 Jan 2013
Using types to assist the workflow
22 Jan 2013
Steps towards creating our own 'let!'
21 Jan 2013
How 'let' works behind the scenes
20 Jan 2013
Unwrapping the enigma...
19 Jan 2013
A before and after comparison
18 Jan 2013
Working with integers and dates safely
17 Jan 2013
Adding more semantic information to a primitive type
16 Jan 2013
Using state machines to ensure correctness
15 Jan 2013
Gaining deeper insight into the domain
14 Jan 2013
Encoding business logic in types
13 Jan 2013
Adding meaning to primitive types
12 Jan 2013
Making design more transparent and improving correctness
02 Aug 2012
F# equivalents to C#
01 Aug 2012
Three approaches to porting existing C# code to F#
17 Jul 2012
16 Jul 2012
14 Jul 2012
12 Jul 2012
Tips and techniques for printing and logging
10 Jul 2012
Type safety for numerics
10 Jul 2012
Ints, strings, bools, etc
09 Jul 2012
Behind the magic curtain
09 Jul 2012
Not the same as a union type
07 Jul 2012
Using combinators to build functionality
30 Jun 2012
More pattern matching in practice
29 Jun 2012
Pattern matching in practice
28 Jun 2012
The workhorse of F#
07 Jun 2012
And why it is not null or nullable
06 Jun 2012
Adding types together
05 Jun 2012
Extending tuples with labels
04 Jun 2012
Multiplying types together
03 Jun 2012
Also known as aliases
02 Jun 2012
A look at the big picture
01 Jun 2012
A new world of types
21 May 2012
Syntax for throwing and catching
20 May 2012
And how to avoid using them
19 May 2012
a, f, x and friends
18 May 2012
Understanding the offside rule
17 May 2012
Control flows, lets, dos, and more
17 May 2012
How to use them
16 May 2012
Why expressions are safer and make better building blocks
15 May 2012
How to code in F#
11 May 2012
Creating methods the F# way
10 May 2012
Nested functions and modules
09 May 2012
A function signature can give you some idea of what it does
08 May 2012
Lambdas and more
07 May 2012
Building new functions from existing ones
06 May 2012
Baking-in some of the parameters of a function
05 May 2012
Breaking multi-parameter functions into smaller one-parameter functions
04 May 2012
Understanding the type notation
03 May 2012
Binding not assignment
02 May 2012
The impetus behind functional programming
01 May 2012
A look at the basics of functional programming
29 Apr 2012
A whirlwind tour of object-oriented code in F#
28 Apr 2012
Some convenient features for working with .NET libraries
27 Apr 2012
F# is part of the whole .NET ecosystem
26 Apr 2012
Turning events into streams
25 Apr 2012
Making it easier to think about concurrency
24 Apr 2012
Encapsulating a background task with the Async class
23 Apr 2012
The next major revolution in how we write software?
22 Apr 2012
How to make illegal states unrepresentable
21 Apr 2012
In F# the type system is your friend, not your enemy
20 Apr 2012
A powerful technique to ensure correctness
19 Apr 2012
Making your code predictable
18 Apr 2012
How to write 'compile time unit tests'
17 Apr 2012
Dynamic patterns for powerful matching
16 Apr 2012
How to fix some of a function's parameters
15 Apr 2012
OO design patterns can be trivial when functions are used
14 Apr 2012
Immutability and built-in equality with no coding
13 Apr 2012
Features that reduce programming drudgery and boilerplate code
12 Apr 2012
Pattern matching can match and bind in a single step
11 Apr 2012
Function composition and mini-languages make code more readable
10 Apr 2012
The functional approach to the DRY principle
09 Apr 2012
No penalty for making new types
08 Apr 2012
How to avoid getting distracted by complex type syntax
07 Apr 2012
Why is conciseness important?
06 Apr 2012
The concepts that differentiate F# from a standard imperative language
05 Apr 2012
In which we see that F# excels at callbacks, and we are introduced to the 'use' keyword
04 Apr 2012
In which we see that F# is more declarative than C#, and we are introduced to pattern matching.
03 Apr 2012
In which we attempt to sum the squares from 1 to N without using a loop
02 Apr 2012
A very quick overview on how to read F# code
01 Apr 2012
An overview of the benefits of F#