Strict Standards: Non-static method Soojung::addReferer() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/settings.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /home/lifthrasiir/sites/sapzil.info/soojung/settings.php:79) in /home/lifthrasiir/sites/sapzil.info/soojung/classes/Counter.class.php on line 63

Strict Standards: Non-static method Entry::getEntry() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/entry.php on line 51

Strict Standards: Non-static method Soojung::entryIdToFilename() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/classes/Entry.class.php on line 182

Strict Standards: Non-static method Soojung::queryFilenameMatch() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/classes/Soojung.class.php on line 55
TokigunStudio3 | 블로그: 함수형 프로그래밍

내용으로 바로 넘어 가기


TokigunStudio3

228 / 3282   


더 이상 이 블로그는 운영되지 않습니다. 새 블로그로 가 주세요.

함수형 프로그래밍

2004/08/18 PM 06:52 | [옛글] 내 생각, 내 느낌 | 0 comments | 0 trackbacks | AllBlog: vote, to pocket

일러두기: 이 글은 옛날에 사용하던 엔비 블로그에서 가져 온 것으로, 원문은 여기에서 볼 수 있습니다.

사실 저는 LISP 등의 함수형 프로그래밍 언어들을 거의 사용해 보지 못 한 사람입니다. 설명(LISP라면 LISP Primer-_-)만 줄기차게 읽었기 때문에 사실 제가 특정 언어에 대해서 설명할 얘기는 없다고 생각해도 될 것 같습니다. (사실 저는 정확하게 LISP와 Haskell에 대해서 약간만 알고 있습니다. -_-)

현재 대부분의 (잘 알려진) 프로그래밍 언어들은 순차형 프로그래밍 언어입니다. 당연히 저도 그런 프로그래밍 언어들을 써 왔고요. 이런 상황에서 만난 LISP는, 좀 우습게 들리시겠지만, 상당한 충격을 저에게 가져다 주었습니다. 완전히 전혀 다른 스타일의 프로그래밍 언어를 접한 거니까 당연히 놀라지 않을 수가 없지요. 제가 LISP에서 가장 인상 깊었던 게 Tail Recursion이었는데, 일반적으로 절차형 프로그래밍 언어에서 기피-_-되는 대상인 Recursion을 거리낌 없이 쓸 수 있다는 일종의 편안함(?)에서 그런 인상을 받은 것 같습니다. (물론 요즘의 컴파일러 등등은 Tail Recursion같은 거 다 최적화해 줍니다만...)

그 다음으로 제가 만난 함수형 프로그래밍 언어는 Unlambda-_-였습니다. (Esoteric Programming Language입니다요. 여기에 대해서는 이 포스팅을 참고하세요.) Unlambda는 LISP을 거의 최소 수준으로 축약해 놓은 듯한 느낌을 받는 언어인데(-_-) 여기서는 숫자조차 함수들로 표현하는 거에 인상을 깊게 받았습니다...만 역시 esoteric 계열이니까 당연한 거겠죠 -_-;

그 다음으로 만난 게 Haskell이었습니다. (차 리서 님께서 쥑여주는 Haskell 입문서 번역문을 내 놓으셔서 편하게 접할 수 있었습니다. 쿨럭;;) Haskell은 함수형일 뿐만 아니라 정의에 기반을 두는 프로그래밍 언어라는 점이 가장 맘에 들었고, 만약 직접 배워 보라고 하면 LISP보다는 Haskell을 더 배워 보고 싶습니다. 그 외에 Haskell이 지원하는 (제 입장에서;) 독특한 구문들이 제 눈을 사로잡-_-은 것도 있고... 여러 가지로 재밌는 언어라고 생각합니다. (마이크로소프트가 지원하고 있다던데... 아무래도 언젠가는 꼭 배워야 겠군요 ;;;)

뭐 주저리주저리 얘기를 늘어 놓았는데, 하여간 제 얘기는 함수형 프로그래밍 언어가 저에게 상당한 인상을 주었다는 말입니다. :) 앞으로 배울 일이 생기면 (뭐 C/S 들어 가면 LISP던지 nML 같은 것들 배워야 할텐데... 쿨럭) 배워야겠죠; (중요한 것은 위에 언급한 세 가지 언어 중 제가 제대로 할 줄 아는 건 하나도 없다는 사실입니다 -_-)

덧붙임: 제가 함수형 프로그래밍에 대한 지식이 부족한 관계로 딴지만은 걸지 말아 주세요 T_T

TrackBack URL: http://sapzil.info/soojung/trackback.php?blogid=404

Copyright (c) 1995-2005, Kang Seonghoon (Tokigun).