[부트캠프] 2주차 2 - 함수형 프로그래밍 연습
void main() {
List<int> numbers = [1, 2, 3, 4, 5];
var number1 = numbers.map((n) => n * 2);
var result1 = number1.where((n) => n > 5);
print(result1);
var result11 = numbers.map((n) => n * 2).where((n) => n > 5);
print(result11);
var number2 = numbers.where((n) => n.isEven);
var multiple2 = number2.map((n) => n * n);
var result2 = multiple2.reduce((a, b) => a + b);
print(result2);
var result22 = numbers
.where((n) => n.isEven)
.map((n) => n * n)
.reduce((a, b) => a + b);
print(result22);
//---
List<String> words = ['a', 'dsf', 'fewfa', 'sdf', 'asdfkh', 'sdfhaskj'];
var longword3 = words.where((w) => 5 < w.length);
var result3 = longword3.map((w) => w.toUpperCase());
print(result3);
var result33 = words.where((w) => w.length > 5).map((w) => w.toUpperCase());
print(result33);
//---
var number4 = numbers.where((n) => n.isEven);
var result4 = number4.reduce((a, b) => a + b);
print(result4);
var result44 = numbers.where((n) => n.isEven).reduce((a, b) => a + b);
print(result44);
var number5 = numbers.where((n) => n < 5);
var result5 = number5.reduce((a, b) => a * b);
print(result5);
var result55 = numbers.where((n) => n < 5).reduce((a, b) => a * b);
print(result55);
//---
List<int> points = [-10, -5, 0, 3, 7, 6, 5, 8];
var point = points.where((p) => p > 0);
var plus = point.map((p) => p + 10);
var result6 = plus.fold(0, (a, b) => a + b);
print(result6);
var result66 = points
.where((p) => p > 0)
.map((p) => p + 10)
.fold(0, (a, b) => a + b);
print(result66);
}