1649217389
Learn from Russ Olsen and Christian Romney why you should look into functional programming. They explore the nature of the paradigm as well as its advantages and misconceptions. In this GOTO Unscripted, Russ Olsen shares his war stories and explains how functional programming influences his code for the better.
TIMECODES
00:00 Intro
01:05 What is functional programming?
03:18 What are the advantages of functional programming?
09:14 Misconceptions about functional programming
14:27 Do you need to understand category theory for FP?
16:25 How did you get started with functional programming?
22:55 Russ Olsen's war stories
29:11 The influence of FP on code
33:02 Advice on how to get started with FP
34:33 Outro
Read the full transcription of this interview here:
https://gotopia.tech/articles/expert-talk-functional-programming
#functionalprogramming #programming
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
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
1600455600
Most of what I will discuss in this article is knowledge accumulated from reading, āFunctional Programming in JavaScriptā, by Luis Atencio. Letās dig right inā¦
In simple terms, functional programming is a software development style that places a major emphasis on the use of functions. You might say, āWell, I already use functions daily, whatās the difference?ā Well, itās not a matter of just applying functions to come up with a result. The goal, rather, is to abstract control flows and operations on data with functions in order to avoid side effects and reduce mutation of state in your application.
#programming #javascript #functional #web-development #functional-programming
1605017502
Other then the syntactical differences. The main difference is the way the this keyword behaves? In an arrow function, the this keyword remains the same throughout the life-cycle of the function and is always bound to the value of this in the closest non-arrow parent function. Arrow functions can never be constructor functions so they can never be invoked with the new keyword. And they can never have duplicate named parameters like a regular function not using strict mode.
this.name = "Bob";const person = {
name: āJonā,<span style="color: #008000">// Regular function</span> func1: <span style="color: #0000ff">function</span> () { console.log(<span style="color: #0000ff">this</span>); }, <span style="color: #008000">// Arrow function</span> func2: () => { console.log(<span style="color: #0000ff">this</span>); }
}
person.func1(); // Call the Regular function
// Output: {name:āJonā, func1:[Function: func1], func2:[Function: func2]}person.func2(); // Call the Arrow function
// Output: {name:āBobā}
const person = (name) => console.log("Your name is " + name); const bob = new person("Bob"); // Uncaught TypeError: person is not a constructor
#arrow functions #javascript #regular functions #arrow functions vs normal functions #difference between functions and arrow functions