Haskell에 대한 오해?

Posted 2007. 5. 18. 04:57
현대 함수형 언어의 대표격인 Haskell은 이제 대부분 개발자가 이름 정도는 들어본 언어가 되었죠?
그리고 Haskell의 강력함을 소개하는 예제로 빠지지 않고 등장하는 것이 바로 C 언어로 정확하게 구현하려면, 머리 잡아 뜯으며 디버깅해야 한다는 퀵소트(QuickSort)를 다음과 같이 매우 직관적이고 손쉽게 할 수 있다는 것이죠.

사용자 삽입 이미지

위 간단한 예제는 Haskell의 List Comprehension이나 Generic Recursion 같은 함수 언어 특유의 여러 특징을 잘 보여줍니다.

그런데 요즘 주변 친구들에게 Haskell 언어 아냐고 물어보면 이런 대답이 돌아옵니다. 그거 퀵소트 잘하는 언어 아냐? 그냥 퀵소트 잘하는 언어. 아무 짝에도 쓸모 없는 퀵소트만 잘하는 언어...

프로그래밍 언어도 보다 적극적인 마케팅이 필요한 시대입니다.

함수형 언어 공헌자들.

Posted 2007. 5. 18. 04:50
함수형 언어는 대부분 학계에서 출발했습니다. 대학 다닐 때 학과 복도를 보면 컴퓨터 공학 발전에 지대한 공헌을 하신 분들의 사진이 죽 걸려 있었습니다. 그 중에 함수형 언어 공헌자들 사진만 뽑아봤습니다.

사용자 삽입 이미지
Lazy 함수 언어들을 만들고 Miranda 시스템 만든 David Turner

사용자 삽입 이미지
타입 추론(type inference)과 다형 타입(polymorphic type)을 도입한 함수형 언어 ML의 창시자 Robin Milner

사용자 삽입 이미지
고차 함수 등의 개념을 강조한 함수 언어인 FP를 만든 John Backus
 
사용자 삽입 이미지
첫 번째 순수 함수형 언어 ISWIM을 만든 Peter Landin


사용자 삽입 이미지

Lisp을 만든 John McCarthy



사용자 삽입 이미지

Lambda Calculus를 만든 Alonzo Church

음. 부러워라.

Tuple이라는 단어의 기원

Posted 2007. 5. 14. 03:50
함수형 언어의 대부분과 파이썬 등은 튜플(tuple)을 내장(builtin) 타입으로 가지고 있습니다.

("Salt", 100)

과 같이 서로 다른 타입을 가지며 순서가 중요한 타입입니다. 보통은 불변형(immutable) 타입이고요. 함수에서 2개 이상의 값을 리턴할 때 유명하게 쓰입니다. 이 튜플(tuple)이라는 단어가 어디서 왔을지는 별로 생각을 안 해보고 쓰고 있었는데 알고보니 엄청 단순한 거였더군요.

(a, b) -> pairs
(a, b, c) -> triples
(a, b, c, d) -> quadruples
(a, b, c, d, e) -> quintuples
(a, b, c, d, e, f) -> sextuples

이렇게 보면 2개 짜리 pair를 제외한 모든 단어가 tuples 비슷하게 끝납니다. 그래서 tuple이라 불린답니다.
« PREV : 1 : ··· : 36 : 37 : 38 : 39 : 40 : 41 : 42 : ··· : 82 : NEXT »