mido

mido's blog about dev and design

Functors와 카테고리

Functors and categories

Functor는 사용자가 맵핑 할 수있는 데이터 타입입니다. 내부의 값에 함수를 적용하는 인터페이스가 있는 컨테이너입니다. functor를 발견하면 "mappable" 한 무언가라고 생각하면 됩니다. functor 타입은 일반적으로 객체처럼 구현되며 구조를 유지한채 입력에서 출력으로 맵핑하는 `.map()` 메소드를 가집니다. 이 때 "구조......

Reduce

함수형 프로그래밍의 강력한 도구

함수형 프로그래밍에서 자주 보이는 Reduce(일명 fold, accumulate)는 배열을 순회하며 각 항목을 누적해서 리턴하는 함수입니다. 이 때 누적된 값을 변수로 저장해놓고 배열의 항목과 누적 값을 어떤 함수에 반복해서 전달합니다. 그 함수는 새로운 누적 값을 리턴하는 임의의 함수입니다. reduce를 사용하여 유용한 기능들을 구현할 수 있는데......

고차 함수

Higher Order Functions

고차 함수는 함수를 인수로 받거나 함수를 리턴하는 함수입니다. 반면에 1차 함수는 함수를 인수로 사용하거나 함수를 출력으로 리턴하지 않습니다. 이전 글에서 우리는 .map() 과 .filter() 예제를 보았습니다. 둘 다 인수로 함수를 사용합니다. 즉, 둘 다 고차 함수입니다. 단어 목록에서 네 글자로 이루어진 단어를 선택하는 1차 함수의......

함수형 프로그래머를 위한 JavaScript 개요

A Functional Programmer’s Introduction to JavaScript

이 편은 JavaScript 또는 ES6 +에 익숙하지 않은 독자를 위한 간단한 입문 글입니다. 당신이 초보자이든 숙련된 JavaScript 개발자이든 아마 새로 배울 것들이 있을 겁니다. 사실 이번 편은 단순히 주제의 겉표면을 훑으며 관심을 환기하기 위해 작성됐습니다. 더 많이 알고 싶다면 더 깊게 탐구하면 됩니다. 이 글은 계속 연재될 것이며 아......

왜 JavaScript로 함수형 프로그래밍을 배우는가?

Why learn functional programming in JavaScript?

그동안 JavaScript에 대해 가지고 있었던 생각들은 모두 잊어 버리고 초심자의 마음으로 이 글을 읽어주세요. JavaScript를 사용해 본 적 없는 이들을 위해 JavaScript의 기본 사항을 처음부터 다룰 것입니다. 당신이 초보자라면 행운입니다. 드디어 ES6 및 함수형 프로그래밍을 처음부터 다루는 글이 나왔습니다! 모든 새로운 개념에......

함수형 프로그래밍의 역사

the rise and fall and rise of functional programming

컴퓨터 과학의 초기, 대부분의 연구가 실제 컴퓨터에서 이루어지기 전 Alonzo Church와 Alan Turing이라는 두 명의 위대한 컴퓨터 과학자가 있었습니다. 그들은 서로 다른 동시에 동등한 두가지 보편적인 계산 모델을 만들었는데, 두 모델 모두 계산가능한 모든 것을 계산할 수 있었습니다. Alonzo Church는 람다 대수를lambda c......

소프트웨어 합성: 개요

composing software: introduction

첫 고등학교 프로그래밍 수업 시간에 소프트웨어 개발이란 복잡한 문제를 작은 문제들로 분해하고 작은 문제들의 해법들을 다시 조합해 복잡한 문제를 해결 할 수 있는 솔루션을 만드는 행위라고 배웠습니다. 전 그 말의 중요성을 너무 늦게 깨달았다는 것이 매우 후회됩니다. 너무 늦게 소프트웨어 설계의 본질을 깨달은 것 입니다. 수백 명의 개발자들을 인터뷰하며 ......