F# F#: How to check that tail recursion calls are optimised The tail recursion optimisation happens when a compiler decides that instead of performing recursive function call (and add new entry to the execution stack) it is possible to use loop-like approach and just

F# Quickstart WPF F#-only app in VSCode - Part 3 How to quickly create WPF F# project was shown in the first part. FsXaml and paket was added in the second part. This part will go reactive: add ReactiveUI and show how to

F# Quickstart WPF F#-only app in VSCode - Part 2 The first part shown how to create a WPF F# project with simple window and its view model, build this project and run it. Now lets add FsXaml using packet, use it to

HackerRank Functional Challenges The Oxford Green Belt Way problem Here is a problem for you to test your programming skills. The Oxford Green Belt Way is a 50-mile circular walk around the city. It goes through the beautiful countryside, quiet fields and

HackerRank Functional Challenges HR F#: Compute the Area of a Polygon This is the last from the introductional problems in the Functional Programming domain on Hackerrank. This also might be most complicated among the introductionary problems: You are given the cartesian coordinates of a

HackerRank Functional Challenges HR F#: Compute the Perimeter of a Polygon The problem of computing perimeter of the polygon is one of the easy problems, but it requires a bit more programming. You are given the cartesian coordinates of a set of points in

HackerRank Functional Challenges HR F#: Functions or Not? The Functions or Not? problem is defined as follows: You are given a set of unique (x, y) ordered pairs constituting a relation. For each of these relations, identify whether they may possibly

HackerRank Functional Challenges HR F#: Lambda Calculus - Evaluating Expressions #5 This is even more simple than the previous one. Compute the value of λx.λy.y. The answer is 0. See the same Church numerals table.

HackerRank Functional Challenges HR F#: Lambda Calculus - Evaluating Expressions #4 This problem just checks how well you have got the idea of Church encoding while solving the previous problem. Compute the value of λx.λy.x(xy). Just by looking at the definition

HackerRank Functional Challenges HR F#: Lambda Calculus - Evaluating Expressions #3 Although the Lambda Calculus - Evaluating Expressions #3 is probably the most simple of all the functional problems on Hackerrank (it is quite easy to solve it and even more easy to guess

HackerRank Functional Challenges HR F#: Lambda Calculus - Evaluating Expressions #2 The first λ-calculus evaluating expression problem was very easy. The second one is similar: Compute the value of (λx.x+1)((λy.y+2)3). Just to make a bit more fun from

HackerRank Functional Challenges HR F#: Lambda Calculus - Evaluating Expressions #1 The next set of problems are about performing calculations with λ-functions. The first one is to check that the reader is confident with mixing λ-calculus and algebraic operators: Compute the value of (λx.

HackerRank Functional Challenges HR F#: Lambda Calculus - Reductions #4 The last one from reduction problems is following: Reduce the following expression, using the beta-rule, to no more than one term. If the expression cannot be reduced, enter "CAN'T REDUCE". (λg.

HackerRank Functional Challenges HR F#: Lambda Calculus - Reductions #3 The third λ-calculus problem is a bit more advanced (although still simple): Reduce the following expression, using the beta-rule, to no more than one term. If the expression cannot be reduced, enter "

HackerRank Functional Challenges HR F#: Lambda Calculus - Reductions #2 The second λ-calculus problem is following: Reduce the following to no more than one term. If the expression cannot be reduced, enter "CAN'T REDUCE". ((λx.((λy.(x y)) x)) (λz.w)

HackerRank Functional Challenges HR F#: Lambda Calculus - Reductions #1 The Lambda Calculus - Reductions #1 is rather unusual. Instead of submitting the code, the required submission is a shortening of the lambda-expression. Reduce the following expression to no more than one term.

HackerRank Functional Challenges HR F#: Area Under Curves and Volume of Revolving a Curve The next problem, Area Under Curves and Volume of Revolving a Curve, in mathematically advance so I introduce some therms and facts first. Numerical integration is the measuring the area between function and

arduino Arduino Traffic Light This traffic light is based on the first example. The same resistor + LED is replicated three times and attached to the different pins. The very common logic for traffic light is "STOP&

F# HR F#: Evaluating eˣ The problem Evaluating e^x: The series expansion of eˣ is given by $$1 + x + \frac{x^2} {2!} + \frac{x^3} {3!} + \frac{x^4} {4!} + ...$$ Evaluate eˣ for given values of

F# HR F#: Updating List The problem Updating List requires learning how to generate one list from another. Update the values of a list with their absolute values. In many other programming languages the common approach is to

arduino First Arduino Project: Blinking LED It is really exciting to do even small hardware project after so many years of software development. That's what I can say after making LED blinks with Arduino. That's the story how I

F# HR F#: List Length The problem List Length is interesting because it can be solved using mutable counter but it also can be solved in more functional way. Count the number of elements in an array without

F# HR F#: Sum of Odd Elements The problem Sum of Odd Elements: You are given a list. Return the sum of odd elements from the given list. The solusion is basically just an invocation of the List.fold from

F# HR F#: Reverse a List The problem Reverse a List encourages to learn List.rev. You are given a list of elements. Reverse the list without using the reverse function. The simplest implementation is not very efficient one