To Mock a Mockingbird Raymond Smullyan |
후반부의 combinatory logic에선 먼저 combinator들을 소개한다. 콤비네이터는 쉽게 말하면 함수(function)이다. 하지만 함수가 다른 함수에 대입될 수 있고, 함수의 결과값으로 함수가 나올 수 있기 때문에 (higher order function이라고 한다) 함수의 입력값과 결과값이 보통 숫자라고 알고 있던 나의 머리속을 헷갈리게 하기 시작한다. 소개된 여러 combinator들은 서로 조합되어 여러 가지를 만들어낼 수 있는데, Church (수학자 이름이다)의 number를 표현할 수 있으며, lambda calculus에 대응되어 현대 프로그래밍과 동등한 계산 능력을 발휘할 수 있다. 스멀리언씨가 좋아하는 괴델의 불완전성 정리를 combinator를 이용하여 이야기한다.
스멀리언씨의 이야기꾼 재능과, combinatory logic 자체의 재미가 조합되어 후반부는 그리 복잡하지는 않았다. 단지 난 퍼즐책을 보면서 퍼즐을 풀고 싶었는데 이 책에서는 수학 문제를 푼 셈이 되어버려서, 굳이 말하지면 그 점이 아쉬웠다고나 할까.
combinatory logic의 기본인 higher order function은 점점 각광받고 있는 함수형 프로그래밍 언어의 특징이다. combinator들을 이용하여 문제를, 실제 프로그램을 보다 쉽고 재미있게 풀 수 있을까? 궁금해지고 있다.
This book might be most well-known puzzle book of Raymond Smullyan in Computer Science society, for it deals with combinatory logic which is equivalent to lambda calculus and in turns lambda calculus is equivalent to modern computer programming languages. During my study of Haskell programming language at spring 2009, I came across with that information and bought this book right then. At that time, I read some former parts, and there are normal logic puzzle, like truth-telling Knights and lying Knaves, and put it down without serious reading combinatory logic parts.
I'm solving some puzzles daily before sleep this year and I finally take a trip to Smullyan's forest full of combinatory birds. The latter part of this book deals with combinatory logic. This is a puzzle book, but combinatory logic is definetly math, no matter what the author calls combinators as birds. So this is a math book. But I enjoyed this book. Combinatory logic might be one of few math topic which is not boring but interesing. I was very glad to find out variety of combinators, the relationship between combinatory logic and lambda calculus. "introduction to combinator logic and lambda calclus" should be the subtitle of this book.
Can combinatory logic be practical? It might be.
So.. I ordered a book named "Lambda calculus and combinators: introduction".