Upcoming SlideShare
×

# Functional programming

376 views

Published on

Published in: Software
1 Like
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

Views
Total views
376
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
5
0
Likes
1
Embeds 0
No embeds

No notes for slide

### Functional programming

1. 1. NewHeart 서승현 Functional Programming and Tail Recursion
2. 2. Contents 1. Functional Programming 2. Features 3. Tail Recursion 4. Q&A
3. 3. Functional Programming Object-Oriented Programming Procedural Programming
4. 4. Object-Oriented Programming
5. 5. Object-Oriented Programming
6. 6. 모든 것은 객체다 Object-Oriented Programming
7. 7. 모든 것은 객체다 Object-Oriented Programming 추상화
8. 8. Functional Programming
9. 9. 모든 것은 함수다 Functional Programming 추상화
10. 10. Functional Programming
11. 11. Functional Programming 모든 것은 수학적인 함수다
12. 12. 모든 것은 수학적인 함수다 Functional Programming
13. 13. Functional Programming 참조적 투명성 모든 것은 수학적인 함수다
14. 14. Procedural Programming Referential Transparency
15. 15. Referential Transparency
16. 16. Mathematics Referential Transparency
17. 17. Referential Transparency 𝒇 𝒙 = 𝒙 𝟐 + 𝒙 + 𝟏 𝒌 = 𝟏 𝒙 = 𝒌 + 𝒇 𝒌 𝒚 = 𝒌 + 𝒇 𝒌 𝒙 = 𝒚?
18. 18. 참조적 투명성 Functional Programming
19. 19. 참조적 투명성 Functional Programming 상태에 영향을 받지 않는다
20. 20. 모든 것은 수학적인 함수다 Functional Programming
21. 21. 1. Type Inference 2. List Processing 3. Pure Function 4. Non-Strict Evaluation 5. First-Class Function 6. Recursion Features
22. 22. Ocaml
23. 23. 1. Type Inference 2. List Processing 3. Pure Function 4. Non-Strict Evaluation 5. First-Class Function 6. Recursion Features
24. 24. Ocaml Primitive Types int float char string bool unit 2, -2, … 2.0, -2.0, … ‘2’, ‘b’, … “”, “22”, … true, false ()
25. 25. Type Inference
26. 26. Type Inference
27. 27. Type Inference Javascript
28. 28. Type Inference Javascript Ocaml
29. 29. Type Inference
30. 30. 1. Type Inference 2. List Processing 3. Pure Function 4. Non-Strict Evaluation 5. First-Class Function 6. Recursion Features
31. 31. List Processing
32. 32. List Processing
33. 33. List Processing
34. 34. 1. Type Inference 2. List Processing 3. Pure Function 4. Non-Strict Evaluation 5. First-Class Function 6. Recursion Features
35. 35. Pure Function
36. 36. Function
37. 37. Function Javascript
38. 38. Function Javascript Ocaml
39. 39. Function
40. 40. Currying
41. 41. Currying
42. 42. Referential Transparency C++
43. 43. Referential Transparency C++ Ocaml
44. 44. Referential Transparency OcamlJavascript
45. 45. Referential Transparency
46. 46. 1. Type Inference 2. List Processing 3. Pure Function 4. Non-Strict Evaluation 5. First-Class Function 6. Recursion Features
47. 47. Short-Circuit Evaluation
48. 48. Short-Circuit Evaluation
49. 49. Short-Circuit Evaluation
50. 50. Non-Strict Evaluation length [0/0, 1/0, 2/0]
51. 51. Non-Strict Evaluation length [0/0, 1/0, 2/0]
52. 52. Non-Strict Evaluation length [0/0, 1/0, 2/0]
53. 53. Non-Strict Evaluation length [0/0, 1/0, 2/0]
54. 54. Non-Strict Evaluation
55. 55. Non-Strict Evaluation
56. 56. 1. Type Inference 2. List Processing 3. Pure Function 4. Non-Strict Evaluation 5. First-Class Function 6. Recursion Features
57. 57. First-Class Function 1. 함수를 인자로서 넘길 수 있다 2. 함수를 값으로서 반환할 수 있다 3. 익명 함수와 중첩 함수 4. 변수에 함수를 대입할 수 있다 5. 비지역 변수와 클로져
58. 58. Passing Functions as Arguments
59. 59. Passing Functions as Arguments
60. 60. Passing Functions as Arguments
61. 61. First-Class Function 1. 함수를 인자로서 넘길 수 있다 2. 함수를 값으로서 반환할 수 있다 3. 익명 함수와 중첩 함수 4. 변수에 함수를 대입할 수 있다 5. 비지역 변수와 클로져
62. 62. Returning Functions as Results
63. 63. Returning Functions as Results
64. 64. Returning Functions as Results
65. 65. First-Class Function 1. 함수를 인자로서 넘길 수 있다 2. 함수를 값으로서 반환할 수 있다 3. 익명 함수와 중첩 함수 4. 변수에 함수를 대입할 수 있다 5. 비지역 변수와 클로져
66. 66. Anonymous and Nested Functions
67. 67. First-Class Function 1. 함수를 인자로서 넘길 수 있다 2. 함수를 값으로서 반환할 수 있다 3. 익명 함수와 중첩 함수 4. 변수에 함수를 대입할 수 있다 5. 비지역 변수와 클로져
68. 68. First-Class Function 1. 함수를 인자로서 넘길 수 있다 2. 함수를 값으로서 반환할 수 있다 3. 익명 함수와 중첩 함수 4. 변수에 함수를 대입할 수 있다 5. 비지역 변수와 클로져
69. 69. Non-local Variables and Closures
70. 70. First-Class Function 1. 함수를 인자로서 넘길 수 있다 2. 함수를 값으로서 반환할 수 있다 3. 익명 함수와 중첩 함수 4. 변수에 함수를 대입할 수 있다 5. 비지역 변수와 클로져
71. 71. 1. Type Inference 2. List Processing 3. Pure Function 4. Non-Strict Evaluation 5. First-Class Function 6. Recursion Features
72. 72. Recursion
73. 73. Recursion
74. 74. 1. Type Inference 2. List Processing 3. Pure Function 4. Non-Strict Evaluation 5. First-Class Function 6. Recursion Features
75. 75. Tail Recursion 1. Tail Recursion Optimization 2. Tail Recursion by Accumulator 3. Continuation-Passing Style
76. 76. Stack Overflow
77. 77. Tail Recursion
78. 78. Tail Recursion Optimization
79. 79. Tail Recursion Optimization
80. 80. Tail Recursion
81. 81. Tail Recursion by Accumulator
82. 82. Tail Recursion Optimization Before After
83. 83. Tail Recursion Optimization Before After
84. 84. Tail Recursion by Accumulator
85. 85. Tail Recursion by Accumulator
86. 86. Continuation-Passing Style
87. 87. Continuation-Passing Style
88. 88. Direct Style
89. 89. Direct Style
90. 90. Continuation-Passing Style
91. 91. Continuation-Passing Style
92. 92. Continuation-Passing Style
93. 93. Continuation-Passing Style
94. 94. Continuation-Passing Style 1. 꼬리 재귀 최적화 2. 비동기 호출의 실행 순서 보장 3. 에러 분기 제어
95. 95. Tail Recursion 1. Tail Recursion Optimization 2. Tail Recursion by Accumulator 3. Continuation-Passing Style
96. 96. Q&A