본문 바로가기

functional programming

(4)
[02]스칼라로 함수형 프로그래밍 시작하기 - 스칼라로 배우는 함수형 프로그래밍 2020/09/05 - [Programming Project/스칼라로 배우는 함수형 프로그래밍 정리] - [01]함수형 프로그래밍이란 무엇인가? - 스칼라로 배우는 함수형 프로그래밍 에서 이어지는 글입니다. 이 글은 스칼라로 배우는 함수형 프로그래밍을 읽고 정리한 글입니다. - 이번 글에서는 꼬리 재귀 함수(tail recursion function)를 이용해서 루프를 작성하는 방법을 알아 보며, 고차 함수(high-order-function)에 대해서도 알아본다. 고차 함수는 다른 함수를 인수로 받는 함수인데, 계산의 결과를 함수로 리턴 할 수도 있다. 또한 다형적(polymorphic) 고차 함수의 예도 몇 가지 소개한다. 2.1 스칼라 언어의 소개. 다음은 이번 장에서 자세히 살펴볼, 스칼라로 작성..
[01]함수형 프로그래밍이란 무엇인가? - 스칼라로 배우는 함수형 프로그래밍 스칼라로 배우는 함수형 프로그래밍을 읽고 정리한 글입니다. - 함수형 프로그래밍은 오직 순수 함수(pure function)들로만, 다시 말해서 부수 효과(side effect)가 없는 함수들로만 구축한다는 것이다. side effect가 없는 함수란, 어떤 값을 return하는 것 외에 다른 행위들(변수를 수정하거나, 오류를 내면서 실행을 중단하거나, 파일에서 무엇인가를 읽거나 수정하거나, 화면에 print를 한다거나..)을 발생시키지 않는 함수를 말한다. 이렇게 순수 함수들로만 프로그래밍을 하게 되면 모듈성(modularity)이 증가하여 훨씬 이로운 점들이 많이 생긴다. 모듈성 덕분에 순수 함수는 test, 재사용, 병렬화, 일반화, 분석이 쉬워진다. 또한, 버그가 생길 여지가 적다. 이 글에서는 ..
Lecture 2.1 - Higher-Order Functions (Functional Programming Principles in Scala / Coursera 강의 정리) 이 글에서는 functional programming에서 중요한 개념을 다른다. High order(고차) 함수는 함수를 인수로 전달하거나 결과로 반환할 수 있다. 함수형 언어에 대한 한가지 특별한 점은 함수형 언어는 함수를 1급 객체로 여긴다는 것이다. 이 말은, 다른 값 처럼 함수는 파라미터로 넘겨질 수 있고, result로 반환될 수도 있다는 말이다. 이것을 통해 프로그램을 작성할 수 있는 유연한 방법이 제공된다. 함수를 매개 변수로 가져오는 함수 또는 반환하는 함수는 고차 함수(high order function)라고 불린다. 이는 일차 함수(first order function)과 반대되는 말이다. 예시를 보자. a와 b 사이의 모든 정수를 합한다고 가정하자. sumInts는 범위를 입력으로 받..
Lecture 1.1 - Programming Paradigms (Functional Programming Principles in Scala / Coursera 강의 정리) https://www.coursera.org/learn/progfun1/home/welcome 너무 조하요 강의 짱짱! 함수형 프로그래밍의 패러다임을 공부 할 것. 완전 새로운것이다 (!!!! NEW !!!!) 패러다임의 의미를 살펴보면, 과학에서의 패러다임은 독립적인 개념이나 과학적 원리의 사고 패턴을 의미한다. 프로그래밍에서는 크게 세가지의 프로그래밍 패러다임이 있다. 우선 imperative programming (명령형 프로그래밍)이다. (Java , C 등이 여기에 해당한다) 그리고 functional programming이 있으며 (우리가 이제 배울 것) 잘 알려지지는 않았지만 logic programming이 있다. 객채지향 프로그래밍이 새로운 패러다임이라고 말하는 사람도 있지만, 교수님 생..