-
Notifications
You must be signed in to change notification settings - Fork 0
/
Functional_Programing.js
87 lines (70 loc) · 1.6 KB
/
Functional_Programing.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/*
Functional Programming
1. Functions are No.- 1 citizens.
a) Passing function as an argument (callback function)
b) Function returns a function
c) Function as a data type
d) Nested Function
2. Declarative Programming vs Imperative Programming
3. Pure Functions
Arrow Functions (No own Arguments, No own this keyword)
a) Easy to Write
b) Easy to Understand
c) Easy to Debug
*/
// Receiving function as a parameter
function show(calCube){
for(var i =1; i<=5; i++){
calCube(i);
}
}
function cube(num){
console.log(num**3); // this ** will works as the power num^3
}
show(cube); // Passing function as an argument
1
8
27
64
125
// Nested Function
function calculator(){
var add = function(x,y){
return x+y;
}
return add; // function returns function
}
var f = calculator();
f; // function as a data type
ƒ (x,y){
return x+y;
}
f(10, 20);
30
// Imperative Programming (Normally we do it on a daily basis...)
var arr = [10, 20, 40, 30, 40, 50, 60, 40];
var search = 40;
var arr2 = [];
for(var i=0; i<arr.length; i++){
if(arr[i] == search){
arr2.push(arr[i]);
}
}
3
arr2;
(3) [40, 40, 40]
arr2.length;
3
// Declarative Programming
// if you want to store multiple records we can use filter method.
arr.filter((e)=>e==40); // Pure func" (Arrow Functions) contains No Arguments, No this keyword
(3) [40, 40, 40]
var g = arr.filter((e)=>e==40);
undefined
g.length;
3
// if you want to store a single record we can use find method.
var c = arr.find((e)=>e==10);
undefined
c.length;
1