はじめてのHaskell(8)

クイックソート

import List

main = print $ qsort [3,4,1,8,2,6,5]

qsort :: [Int] -> [Int]
qsort [] = []
qsort (p:xs) = qsort lt ++ [p] ++ qsort gteq
               where
	       	lt = [x | x <- xs, x < p]
		gteq = [x | x <- xs, x >= p]

関数

関数 概要
++ (++)::[a] -> [a] -> [a]
文字列の連結

内包表示

[x | x <- xs, x < p]
上記は、「リストxsの各要素xについて、x < pである要素を集める」を意味する。

Haskellの凄さがやっとわかってきた。。。