다음과 같은 함수 \(f\)를 생각해 보자. \begin{equation} f:x \mapsto |x| \\ \end{equation}\[ f:x \mapsto \begin{cases} x, & \text{if } x \ge 0 \\ -x, & \text{if } x <0\\ \end{cases} \]\begin{equation} g:x \mapsto -x \\ \end{equation} 함수 \(f\)의 두 번째 표현은 첫 번째 함수를 다른 방법으로 표기한 것이다. 이런 함수…
먼저 시작하기 전에 함수(Function)에 대해 생각해보자. 사실 우리는 모두 중학교 수학에서 함수의 정의를 배웠다. 너무 오래돼서 기억이 안 날 수도 있고, 프로그래밍을 너무 오래 하다 보니 수학에서의 함수보다는 프로그래밍 언어에서의 함수에 익숙해진 지도 모른다. 프로그래밍에서의 함수와 수학에서의 함수가 개념적으로 같은 거 아니냐고 반문할 수도 있다. 둘은 비슷하지만 약간의 차이점이 있다….
여기서 설치는 Mac OS X과 Linux에 대한 것만 다룬다. Window에 설치하는 방법은 Haskell Homepage 을 참고하면 된다. Mac OS X 에서의 Haskell 설치 brew install Caskroom/cask/haskell-platform brew를 이용하여 위와 같은 명령으로 설치하면 된다. Homebrew는 OS X을 위한 package 관리 및 설치 프로그램으로 Mac으로 프로그래밍을 한다면, 반드시 사용하는 게 여러모로 편하다….
함수형 프로그래밍은 함수를 기반으로 한 프로그래밍 기법이다. 다른 언어들이 튜링 머신을 기초로 한 사고방식을 가진다면, 함수형 프로그래밍은 수학(Mathematics)의 사고방식과 표현 방식을 가진다고 볼 수 있다. 우리는 중학생 때 다음과 같은 함수 \(f(x)\)를 배웠다. $$ y = f(x), {x \in \mathbb{N}, y \in \mathbb{N} } $$ $$ x \mapsto y $$…
프로그래밍을 업으로 삼고 있지 않은 내가 이런 글을 쓰는 게 주제넘은 일일 수도 있다. 그럼에도 현대 IT 기술에 관심이 많은 한 사람으로서 프로그래밍을 어떻게 바라보고 있는지에 대한 글을 남기는 것은 앞으로 프로그래밍을 배우고자 하는 고등학생이나, 대학생, 일반인들에게 도움이 될 것 같다는 생각에 이 글을 시작한다. 내가 이미 알고 있는 지식과,…
대학교 (Undergraduate School) 물리학과에는 대략 35명의 친구들이 모였다. 모두가 학창시절 아인슈타인이나 하이젠베르크의 전기를 읽고, 자연의 신비에 대해 공부를 더 심도 있게 해보고 싶어 모인 친구들이다. 물질의 근본이 무엇인가에 대한 생각도 해보았고, 분자, 원자, 원자핵, 양성자, 중성자, 쿼크 등에 관심을 갖고 모든 물질의 기본 입자에 대한 지식도 어설프게나마 가지고들 있다. 70%…
미국에 올 때 환전한 돈을 계속 들고만 있을 수는 없는 노릇이다. 얼른 은행계좌를 만들어서 넣어 두는 일도 도착하자마자 할 일 중 하나이다. 사실 나는 미국에 도착해서 가장 먼저 한 일이기도 했다. 인터넷으로 계약했던 집으로 들어가려고 하는데, 첫 달 월세를 내야 열쇠를 준다고 했다. 월세를 현금으로 주었더니, 자기는 현금을 받지 않는단다….