머리말에 qsort 예제 나와있어서 보고있는데
qsort[] = []
qsort(x:xs) = qsort smaller ++ [x] ++ qsort larger
where
smaller = [a | a <- xs, a <= x]
larger = [b | b <- xs, b > x]
> :t qsort
qsort :: Ord a => [a] -> [a]
qsort는 순서를 가진(<,>,<=,>= 이딴 연산할 수 있는) 타입클래스에 속한 타입 a에 대해 [a]타입을 입력받아 [a]타입을 출력한다
라는 의미냐?
Ord는 타입 클래스고, a는 Ord의 타입이고, qsort는 인스턴스고?
그리고 특수문자 존나쓰던데 불편해서 어떻게씀?
Haskell 에디터가 알아서 특수문자로 바꿔주는거임?
qsort라는 함수의 인자 a의 타입클래스가 Ord이고 리스트를 받아서 리스트를 반환
그러면 a는 타입클래스고 [a]가 타입임? 아니면 타입클래스만 사용하고 타입은 없는거라고 보면됨? 타입 자체는 qsort를 호출을 한 시점에서 결정될 것 같은데
아 qsort의 타입이 Ord a => [a] -> [a] 라는 거구나 ㅇㅇ 이해됨 ㄳ