알아가는 즐거움

Learning to think

Tag: programming

함수형 사고

최근에 나온 번역서를 읽었는데, 찾아보니 원서는 2년 전인 2014년에 출간되었다. 명령형 방식으로 구현하던 로직, 디자인 패턴을 활용하던 설계를 함수형 프로그래밍에서는 어떻게 접근할 수 있는지 보여준다. 책의 제목이 함수형 언어가 아니라 함수형 사고라는 데서 짐작하겠지만, 언어 자체보다는 생각하는 방식의 전환과 확장에 중점을 둔다. 그래서 예제도 스칼라/그루비/클로저(Clojure)같은 함수형 프로그래밍 언어 뿐 아니라 자바8이나 함수형 자바로 구현한 코드가 […]

파이썬을 활용한 베이지안 통계: 개발자를 위한 (베이지안) 데이터 분석 입문서

『파이썬을 활용한 베이지안 통계(원제: Think Bayes)』는 『불멸의 이론』을 읽고 ‘도대체 베이지안이 뭐길래 이 난리인가’ 하는 호기심이 생긴 사람, 특히 컴퓨터 프로그래머가 읽으면 딱 좋을 책이다. 베이즈 규칙의 기본부터 시작해서 점점 복잡한 문제를 베이지안 확률 모델을 이용해서 해결하는 방법을 가르쳐준다. 매 챕터를 시작할 때마다 저자는 실생활에서 만날 법한 문제를 하나씩 제시한다. 예를 들면, 스포츠 경기에서 어느 […]

서브라임 텍스트를 쓰기로 한 이유, SublimeREPL

얼마 전부터 서브라임 텍스트 에디터를 쓰고 있다. R이나 SAS의 내장 편집기로 작업할 때, 원하는 코드 부분만 선택해서 실행하는 기능은 정말 너무너무 편리하다. 분석을 하다 보면, 코드를 계속 수정하면서 데이터를 탐색하고 실험하는 과정이 필수적인데, 그때마다 파일 읽기부터 다시 해야 한다면 무척 불편할 것이다. 이렇게 빠른 호흡의 (코딩 – 결과 확인)의 반복에 맛을 들이니까, 파이썬 같은 언어로 […]

같은 작업을 여러 프로그래밍 언어로 짜보기

간단한 문제도 지금 어떤 프로그래밍 언어로 작업하고 있는지에 따라서 조금씩 다르게 접근하고 생각하게 되는 것 같다. 예를 들어, 인용 관계를 뒤집는 문제를 생각해보자. a ~ e의 다섯 논문이 아래와 같이 aa, bb, cc를 인용하고 있을 때, aa, bb, cc에 대해서 자신을 인용한 논문을 찾으려면 어떻게 할까? a -> aa, bb, cc b -> bb c […]

[홍보] 읽을거리 발견 서비스

나 자신과 또 어떤 한 사람을 위해서 개인적으로 만들고 있는 인터넷 서비스가 있다. 개인별로 입맛에 맞는 읽을거리를 추천해주는 것인데, 이 글에서 얘기한 첫 번째 문제에 대한 나름의 해결책이다. 원래 스마트폰 앱으로 만들 예정이어서 “한 사람을 위한 앱” (App For One)을 줄여서 A41이라고 이름 지었으나, 결국은 그냥 웹페이지로 만들어졌다.

정렬 알고리즘을 유도해보자

컴퓨터 프로그래밍을 하면 절대로 빠뜨릴 수 없는 것이 정렬 알고리즘이다. 그 중에서 잘 알려진 3개를 간단히 살펴보자.