F# – Working classes

Lately I am trying improve my programming by following some Katas. One of the things, I have been trying to learn was Functional Programming. So I decided to spend more time and try to write the same code I write in C# to see how can I adopt and learn faster. So in this blog, we will look at a small program I was trying to do in C#

1. Using third party control:

To use third party control, you do exactly same as you would do in C#, add the reference and then instead of using ‘using namespace’ in F# you would open the namespace to use in the code. In this example I am using bcParser.Net.dll to evaluate arithmetic expression. So the open would look like something like the following

open Bestcode.Mathparser

2. Working with a class:

Now that we added reference to the namespace we need to instantiate the class and add arithmetic expression to it to use it. For our example, our expression is “1+2” and expect the result to 3. To instantiate the class

let mathParser = MathParser()

now that mathParser is the instance of the class, we need assign the expression to mathParser expression member variable. This is done little different than C#. In C# we will do some thing like the following

mathParser.Expression = “1+2”

but in F#, you have to do the following

mathParser.Expression <- “1+2”

3. Printing the result:

Now that we have the expression set, we need to evaluate and print the result to console. This part is very simple

printfn “%s” (mathParser.Value.ToString())

make sure you put the whole thing parenthesis otherwise you will get compiler error.

One thing I noticed while using F#, the compiler errors are so explanatory, you will able to figure out what were you doing wrong in the code.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s