Haskell
ここのpermutationsの使用例で動作確認した
http://rubyist.g.hatena.ne.jp/edvakf/20090416/1239829830

checkPermu xs = and.concat $ check xs
where
check [] = []
check (x:xs) = map (x/=) xs : check xs

permutations 0 _ = [[]]
permutations _ [] = [[]]
permutations n ns = [x:xs | x <- ns, xs <- permutations (n-1) ns, checkPermu (x:xs)]

意図せず、>>161のライブラリVerより自由度が上がった(ruby版の使用例のお陰?)


>>170

ネイティブ関数に関しては、言語によってネイティブ関数を少なめにするポリシーがあったりするからな・・・
(主に言語仕様の軽量化。ライブラリとして追い出して、言語仕様をスリムにするため。Cとrubyはそれぞれ、その極端な例)

たしか、JavaやPythonもどっちかと言うとライブラリに追い出す主義のはず