1604332708

Have you thought about learning Functional Programming, but have been daunted by all the technical jargon? Luckily, in this talk I won’t be exploring any technical concepts, and instead will be walking through a real-world Javascript project and discussing how we can refactor it to a more functional style using a TS library, fp-ts. We will be using Functors, Monads, Applicative, and more, without having to know what they are or how they work!

At the end of the talk you should be confident to actually write functional code, and not just understand it, in your own projects.

About

imgix - Software Engineer working on OSS

#javascript #functional #programming #developer

1604332708

Have you thought about learning Functional Programming, but have been daunted by all the technical jargon? Luckily, in this talk I won’t be exploring any technical concepts, and instead will be walking through a real-world Javascript project and discussing how we can refactor it to a more functional style using a TS library, fp-ts. We will be using Functors, Monads, Applicative, and more, without having to know what they are or how they work!

At the end of the talk you should be confident to actually write functional code, and not just understand it, in your own projects.

About

imgix - Software Engineer working on OSS

#javascript #functional #programming #developer

1595593200

Functional Programming is a Declarative style of Programming Paradigm for writing computer programs.

But, What are Functions ?

Functions in general, applies computation on given input and returns the output. It relates input to an output.

f(x) = x + 2;

f(1) = 1 + 2 = 3;

f(2) = 2 + 2 = 4;

Above mentioned is a simple function that adds 2 to the input value and returns output. It relates value [1,2] => [3,4]. Similarly, a function in computer programming is a block of instruction that performs computation on given input and returns the output.

Functional Programming is such a style of writing computer programs using these tiny functions that works together and perform required computation.

Functions in Functional Programming

The philosophy of functional programming is to maintain certain characteristics while writing functions in a computer program. These characteristics are the fundamental nature of functional programming that describe what shall be the behaviour of a function. These are as follows :

Declarative

A function must be declarative, it simply tells what to compute, without specifying how to compute it.

f(x) = x * 4; 👍

Declarative function that tells to multiply input by 4;

f(x) = { y = x + x; z = x + x; return y + z;} 👎

Non-Declarative function that specify how to multiply input by 4;

Pure

A function must give the same output for a given input value, at any period of time. It is not dependent upon anything outside the function definition.

f(x) = It’s never too late; 👍

Pure function that will always return It’s never too late

f(x) = If today’s Friday or Saturday then It’s never too late else It’s late. 👎

Impure function that consider day for returning value. The value is not predictable. It can change. So a function that performs anything which is unpredictable is not a pure function. The condition or the execution is dynamic or unfixed in an impure function.

#development #functional-programming #software #software-programming #declarative-programming #function

1598093520

If you are reading this, then most probably you already know quite well what functions are in programming. A function is quite a common and spread programming construct that is present in almost all programming languages.

Generally, a function is a block of code that takes some parameters from outside, executes some operations in which these parameters may be used, then it returns an output value. Actually, in many programming languages functions are allowed to not return something or to return multiple values, not only one. But these cases can be also be represented, for the sake of generality, as only one value. For the “no return” case we can use a special value to represent that (in Python that special value is None; whenever you don’t return something from a function it’s returned None). And for the case of more values, we can use a vector of multiple values as a single object.

For example, in Python a function definition looks like this:

```
def func_name(param1, param2, ...):
## do some stuff with input parameters
return output_value
```

Now, the question I want to ask: Are these functions from programming true mathematical functions?

Well…, let’s first recall what a mathematical function is.

In mathematics, a function is just a mapping from a set A to a set B, in which any element from A has only one associated element in B.

#python #programming #function #mathematics #functional-programming

1624331280

“Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data”. In other words, functional programming (FP) promotes code with no side effects and immutable variables. It is a declarative type of programming style. Its main focus is on “what to solve” in contrast to an imperative style where the main focus is “how to solve”.

#functional programming #python #tech blogs #fp #functional programming with python

1596300660

For those interested in functional programming, I’ll talk about *monoids* and why they’re very important to understand ahead of time.

Don’t get confused: This isn’t *monad* — it’s *monoid.* I’m pretty sure you already know of monoids and you use them almost every day — you just didn’t know the term for them.

This is a series on functional programming, so you might not understand what this article is going to talk about if you haven’t read the previous posts.

Let’s assume there’s a function named `identity`

that takes `A`

and returns `A`

.

```
const identity: <A>(a: A): A => a;
interface Student {
name: string;
age: number;
}
identity<number>(3) // 3
identity<string>('hello') // hello
identity<Student>({
name: 'Bincent',
age: 5
}); // { name: 'Bincent', age: 5 }
```

In functional programming, this useless function (seems useless) is an important factor for many other concepts (such as monoids) that we’re about to talk about.

Basically, a monoid is a set of elements that holds the rules of the semigroup and the identity-element rule.

If `S`

is a set of elements, `a`

is a member of `S`

, and `·`

is a proper binary operation, `a·e = e·a ∈ S`

must be satisfied to be a monoid.

```
Identity: a ∈ S, a·e = e·a = a ∈ S
```

Some documentation calls this using the number 1 and the any alphabet in subscript — for example, *1x* referring to the identity on the variable *x*. Or some documentation uses just a single alphabet letter, such as *i or e.*

That’s all there is to know about monoids, let’s practice with some simple examples.

#typescript #programming #functional-programming #javascript #coding #function