﻿ David Raab · Blogging about programming

# Meine Erfahrung mit Cannabis und Depressionen

Meine Erfahrung mit Cannabis und Depressionen Einleitung Hallo, mein Name ist David Raab und wurde 1983 geboren, bin gelernter Fachinformatiker-Systemintegration und habe mir das Programmieren selber beigebracht. Nach meinem Abi war ich Jobmäßig immer unterwegs, doch meine Depression hat mir mein Leben sprichwörtlich zur Hölle gemacht. Ich denke ich werde...

# Understanding Fold

A very important function in List-processing is the List.fold function. List.fold is a very powerful function that gives you a lot of flexibility to do any kind of list transformation. The disadvantage is that this kind of power makes understanding List.fold a lot harder. In this article we look at...

# Variable Arguments in F#

One question that appears in F# from time to time is: How do you create a function that expects a variable amount of arguments? A short answer is: You can't do that. A longer and correct answer: You can do it with (static) methods. But you probably don't want to...

# Mutability vs. Immutability: Valid objects

I already wrote an article that explains immutability, but one thing I hand-waved was the benefits of immutability and why you should program with immutable values. In this article I talk about those benefits by trying to maintaining valid objects at all time and show how we can achieve it...

# Function Application and Composition

Function application is probably one of those terms in functional programming that sounds more scarier as the topic really is. The idea behind functional application just means that we execute a function to get the result. Let's take the example of calculating the square root of 2.0. We can write...

# Catamorphisms

Up to this point I created various articles about fold, in my Series I also created a category named Fold (Catamorphisms) but up till now I didn't explained how this articles related to each other, or what Catamorphisms mean. In this article I want to talk about the remaining parts....

# Monoids

A monoid is a simple concept. It is a generalization of some patterns that you very likely already have seen. Being aware of those can help in designing some operations, and can simplify things. Without much further ado, let us look at three simple math equations. 1: 2: 3: 1...

# Introduction to Functional Programming

In this article I want to give a general introduction to some of the fundamental ideas of functional programming. I just start with the idea of function as data, and explain why functions are viewed as data and why it makes sense to pass functions as arguments. When we understand...