Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
関数潮流(Function Tendency)
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. js> function add2(x) { return x + 2; }
js> add2(5);
7
js> var f = function(x) { return x + 2; }
js> f(8);
10
js> (function(x) { return x + 2; })(9)
11
77. js> function add2(x) { return x + 2; }
js> add2(5);
7
js> var f = function(x) { return x + 2; }
js> f(8);
10
js> (function(x) { return x + 2; })(9)
11
78. js> function add2(x) { return x + 2; }
js> add2(5);
7
js> var f = function(x) { return x + 2; }
js> f(8);
10
js> (function(x) { return x + 2; })(9)
11
79. js> function add2(x) { return x + 2; }
js> add2(5);
7
js> var f = function(x) { return x + 2; }
js> f(8);
10
js> (function(x) { return x + 2; })(9)
11
80. js> function add2(x) { return x + 2; }
js> add2(5);
7
js> var f = function(x) { return x + 2; }
js> f(8);
10
js> (function(x) { return x + 2; })(9)
11
81. Func<int, int> f = (x) => x + 2;
var f = function(x) { return x + 2; }
f = lambda x: x + 2;
f = x -> x + 2
(fset 'f (lambda (x) (+ x 2)))
82.
83.
84.
85.
86.
87. Func<string, string>
foo(Func<DateTime, string> f) {
return
x => x.ToUpper() + " "
+ f(DateTime.Today);
}
Func<DateTime, string> d =
x => x.Year + "/" + x.Month;
Func<string, string> c = foo(d);
string result = c("oblove");
“OBLOVE 2011/7”
88. Func<string, string>
foo(Func<DateTime, string> f) {
return
x => x.ToUpper() + " "
+ f(DateTime.Today);
}
Func<DateTime, string> d =
x => x.Year + "/" + x.Month;
Func<string, string> c = foo(d);
string result = c("oblove");
“OBLOVE 2011/7”
89. Func<string, string>
foo(Func<DateTime, string> f) {
return
x => x.ToUpper() + " "
+ f(DateTime.Today);
}
Func<DateTime, string> d =
x => x.Year + "/" + x.Month;
Func<string, string> c = foo(d);
string result = c("oblove");
“OBLOVE 2011/7”
90. Func<string, string>
foo(Func<DateTime, string> f) {
return
x => x.ToUpper() + " "
+ f(DateTime.Today);
}
Func<DateTime, string> d =
x => x.Year + "/" + x.Month;
Func<string, string> c = foo(d);
string result = c("oblove");
“OBLOVE 2011/7”
91. Func<string, string>
foo(Func<DateTime, string> f) {
return
x => x.ToUpper() + " "
+ f(DateTime.Today);
}
Func<DateTime, string> d =
x => x.Year + "/" + x.Month;
Func<string, string> c = foo(d);
string result = c("oblove");
“OBLOVE 2011/7”
92. Func<string, string>
foo(Func<DateTime, string> f) {
return
x => x.ToUpper() + " "
+ f(DateTime.Today);
}
Func<DateTime, string> d =
x => x.Year + "/" + x.Month;
Func<string, string> c = foo(d);
string result = c("oblove");
“OBLOVE 2011/7”
93. Func<string, string>
foo(Func<DateTime, string> f) {
return
x => x.ToUpper() + " "
+ f(DateTime.Today);
}
Func<DateTime, string> d =
x => x.Year + "/" + x.Month;
Func<string, string> c = foo(d);
string result = c("oblove");
“OBLOVE 2011/7”
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104. int sum(int acc, IEnumerable<int> list) {
if (!list.Any()) {
return acc;
}
int head = list.First();
return sum(acc + head, list.Skip(1));
}
List<int> ls = new List<int> { 3, 5, 8 };
int result = sum(0, ls);
105. int sum(int acc, IEnumerable<int> list) {
if (!list.Any()) {
return acc;
}
int head = list.First();
return sum(acc + head, list.Skip(1));
}
List<int> ls = new List<int> { 3, 5, 8 };
int result = sum(0, ls);
106. int sum(int acc, IEnumerable<int> list) {
if (!list.Any()) {
return acc;
}
int head = list.First();
return sum(acc + head, list.Skip(1));
}
List<int> ls = new List<int> { 3, 5, 8 };
int result = sum(0, ls);
107. int sum(int acc, IEnumerable<int> list) {
if (!list.Any()) {
return acc;
}
int head = list.First();
return sum(acc + head, list.Skip(1));
}
List<int> ls = new List<int> { 3, 5, 8 };
int result = sum(0, ls);
108. int sum(int acc, IEnumerable<int> list) {
if (!list.Any()) {
return acc;
}
int head = list.First();
return sum(acc + head, list.Skip(1));
}
List<int> ls = new List<int> { 3, 5, 8 };
int result = sum(0, ls);
109. int sum(int acc, IEnumerable<int> list) {
if (!list.Any()) {
return acc;
}
int head = list.First();
return sum(acc + head, list.Skip(1));
}
List<int> ls = new List<int> { 3, 5, 8 };
int result = sum(0, ls);
110. int sum(int acc, IEnumerable<int> list) {
if (!list.Any()) {
return acc;
}
int head = list.First();
return sum(acc + head, list.Skip(1));
}
List<int> ls = new List<int> { 3, 5, 8 };
int result = sum(0, ls);
132. >>> [x for x in [1, 2, 3, 4, 5]
if (x % 2 != 0)]
[1, 3, 5]
var l = from x
in new List<int> { 1, 2, 3, 4, 5 }
where x % 2 != 0
select x;
133. >>> [x * 2 for x in [1, 2, 3, 4, 5]
if (x % 2 != 0)]
[2, 6, 10]
var l = from x
in new List<int> { 1, 2, 3, 4, 5 }
where x % 2 != 0
select x * 2;
134.
135. def cor(f):
i = 0
while True:
i = f(i)
yield i
l = cor(lambda x: x + 4)
[l.next() for x in range(0, 3)]
[4, 8, 12]
136. def cor(f):
i = 0
while True:
i = f(i)
yield i
l = cor(lambda x: x + 4)
[l.next() for x in range(0, 3)]
[4, 8, 12]
137. def cor(f):
i = 0
while True:
i = f(i)
yield i
l = cor(lambda x: x + 4)
[l.next() for x in range(0, 3)]
[4, 8, 12]
138. def cor(f):
i = 0
while True:
i = f(i)
yield i
l = cor(lambda x: x + 4)
[l.next() for x in range(0, 3)]
[4, 8, 12]
139. def cor(f):
i = 0
while True:
i = f(i)
yield i
l = cor(lambda x: x + 4)
[l.next() for x in range(0, 3)]
[4, 8, 12]
140. def cor(f):
i = 0
while True:
i = f(i)
yield i
l = cor(lambda x: x + 4)
[l.next() for x in range(0, 3)]
[4, 8, 12]
141. def cor(f):
i = 0
while True:
i = f(i)
yield i
l = cor(lambda x: x + 4)
[l.next() for x in range(0, 3)]
[4, 8, 12]
142. IEnumerable<int> cor(Func<int, int> f) {
int i = 0;
while (true) {
i = f(i);
yield return i;
}
}
var li = cor(x => x + 4);
var ls = from x in li.Take(3)
select "<" + x.ToString() + ">";
[“<4>”, “<8>”, “<12>”]