《코틀린으로 배우는 함수형 프로그래밍》 정오표
 Share
The version of the browser you are using is no longer supported. Please upgrade to a supported browser.Dismiss

View only
 
 
ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
《코틀린으로 배우는 함수형 프로그래밍》 정오표
2
위치기존 내용변경 내용비고
3
1쇄24쪽 중간패턴 매칭에 대해서는 2.5절에서 좀 더 자세히 살펴본다.패턴 매칭에 대해서는 2.6절에서 좀 더 자세히 살펴본다.
4
1쇄50쪽 하단에서 6번째 줄person 객체로부터 apply 함수가 호출되었고,person 객체로부터 also 함수가 호출되었고
5
1쇄3쪽 하단의 마지막 문단
함수형 프로그래밍은 동일한 입력에 ~참조 투명성은 1.3절에서 알아본다
해당 문단 전체 삭제
6
1쇄4쪽 중간 소제목 아래
동시성 프로그래밍에서는 공유 자원이 ~ 참조 투명성은 1.4절에서 알아본다
함수형 프로그래밍은 동일한 입력에 대해 동일한 결과를 반환하는 특성 때문에 결과에 대한 추론이 가능하고 테스트도 쉽다. 또한 컴파일 타임에 코드를 최적화하거나 오류 코드를 예측하고 경고하는 등 많은 것을 할 수 있다. 또한 동시성 프로그래밍에서는 공유 자원이 변경될 걱정 없이 더 안전한 프로그램을 만들 수 있다. 그리고 순수한 함수의 특성 덕에 참조 투명성(referential transparency)도 만족하게 된다(참조 투명성은 1.4절에서 알아본다).
7
코드 1-13
class OopCalculator(private val calculator: Calculator) {
fun calculate(num1: Int, num2: Int): Int {
if (num1 > num2 && 0 != num2) {
return calculator.calculate(num1, num2)
} else {
throw IllegalArgumentException()
}
}

}
class OopCalculator(private val calculator: Calculator) {
fun calculate(num1: Int, num2: Int): Int = calculator.calculate(num1, num2)
}
8
코드 1-14
class FpCalculator {
fun calculate(calculator: (Int, Int) -> Int, num1: Int, num2: Int): Int {
if (num1 > num2 && 0 != num2) {
return calculator(num1, num2)
} else {
throw IllegalArgumentException()
}
}

}
class FpCalculator {
fun calculate(calculator: (Int, Int) -> Int, num1: Int, num2: Int): Int = calculator(num1, num2)
}
9
1쇄50쪽 중간
block함수의 입력을 람다 리시버로 받지 않고 this로 받았다는 점에서는 apply 함수와 다르다.
block함수의 입력을 람다 리시버로 받지 않고 자기 자신을 입력받았다는 점에서 apply 함수와 다르다.
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
88
89
90
91
92
93
94
95
96
97
98
99
100
Loading...