본문 바로가기

함수형 프로그래밍 1 - 함수 합성 이글은 황대산님의 블로그에서 복사한 글입니다. 함수형 프로그래밍 1 - 함수 합성 함수형 프로그래밍이란 함수를 연산의 대상으로 삼는 프로그래밍 패러다임을 말한다. 수학의 함수를 떠올리면 되는데, 우선 다음의 예를 살펴보자. f(x) = x + 3 g(x) = x^2 h = g * f 위에서 함수 h는 함수 f와 g를 합성한 새로운 함수이다. 이제 함수 h는 다음과 같게 정의된 것이나 마찬가지이다. h(x) = g(f(x)) = (x + 3)^2 = x^2 + 6x + 9 루비는 객체지향 언어지만, 동시에 함수형 프로그래밍 언어이기도 하다. 이제 루비에서 함수 f와 g를 정의한 후, 이를 합성하여 함수 h를 만드는 과정을 살펴보도록 하자. 루비에서 함수를 정의할때는 lambda란 메소드를 사용한다. (여기.. 더보기
루비가 쿨한 이유 3 - 해시 이글은 황대산님의 블로그에서 복사한 글입니다. [참고: 이 글은 루비가 쿨한 이유 1 - irb, 루비가 쿨한 이유 2 - 블록에 이어지는 시리즈임.] 해시(Hash)는 Associative Array라고도 종종 불리는데 루비에서 가장 많이 쓰이는 데이타 구조 중 하나이다. 해시에는 키값과 데이타가 짝으로 저장되는데, 다음과 같은 식이다. h = Hash.new h["name"] = "홍길동" h["age"] = 18 h["sex"] = "남자" 저장한 데이타를 불러오려면 원래의 키값만 알고 있으면 된다. 예를 들어, h["name"]은 "홍길동"을 리턴한다. h["address"]와 같이, 존재하지 않는 키값이 입력되면 nil이 리턴된다. 해시는 대부분의 프로그래밍 언어에서 지원되지만, 모든 프로그래밍.. 더보기