티스토리 뷰
대충 기억해 놓을 내용들
함수형 언어의 인자 여러 모양새와 오브젝트 중심 언어의 포괄적 프로그래밍이 다른 점:
함수형 언어에서는 인자 여러 모양새가 기본 초식인 반면 오브젝트 중심 언어에서는 책 마지막에서 다루는 비교적 고급 기술로 여긴다.
타입 클래스(Type Class)란 말 그대로 타입(Type)의 분류(Class)로서 덧셈이나 곱셈과 같이 모든 타입에 다 적용 가능한 여러 모양 함수는 아니지만 공통점이 있는 많은 타입에 적용 가능한 함수의 타입을 딱 떨어지게 정의하기 위해 Haskell 에서 도입한 독특한 기능입니다.
Java : 클래스 정의가 곧 하나의 타입에 대응
Haskell: 클래스는 타입을 모아 놓은 대표 집합, 인터페이스와 유사 (하지만 타입 정의와 인스턴스 선언이 별도)
다른 모듈, 수정 불가능한 라이브러리에 정의된 타입이라도 클래스 인스턴스로 선언하기에 문제가 없다.
// Java 인터페이스 정의 interface Comparable{ int compareTo(T x); // … } // 타입을 정의하며 인터페이스 상속 public class MyType implements Comparable { public int compareTo(MyType x) { // implements method } }
-- 하스켈 타입 클래스 정의 class Ord a where compare :: a -> a -> Ordering ... -- 타입 정의 data MyType = ... -- 별도의 인스턴스 선언 instance Ord MyType where compare x y = -- implments method
Ord a => [a] –> [a] 에서의 a는 클래스의 인스턴스
자바 역시 public static <T extends Comparable<T>> .. 형태로 작성 가능
'Haskell' 카테고리의 다른 글
N+K Pattern (0) | 2011.01.29 |
---|---|
jolly jumper (0) | 2011.01.18 |
내가 만든 .hs 파일 사용하기 (0) | 2011.01.18 |
Programming in Haskell (6) ch3. Exercise (0) | 2011.01.17 |
Programming in Haskell (5) ch2. Exercise (0) | 2011.01.14 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크