import Data.List (unfoldr)
import System.Random
headTail (x:xs) = (x, xs)
bubbleSort
:: Ord a
=> [a
] -> [a
]bubbleSort
= unfoldr
(fmap headTail
. sort
) where sort [] = Nothing
sort
(x:xs
) = Just
$ foldl f
[x
] xs
f (z:zs) y | z < y = z : y : zs
main = do
xs
<- randomRs
('a', 'z') `
fmap` getStdGen
aW1wb3J0ICAgICAgICAgICBEYXRhLkxpc3QgICAgICh1bmZvbGRyKQppbXBvcnQgICAgICAgICAgIFN5c3RlbS5SYW5kb20KCmhlYWRUYWlsICh4OnhzKSA9ICh4LCB4cykKCmJ1YmJsZVNvcnQgOjogT3JkIGEgPT4gW2FdIC0+IFthXQpidWJibGVTb3J0ID0gdW5mb2xkciAoZm1hcCBoZWFkVGFpbCAuIHNvcnQpIHdoZXJlCiAgICBzb3J0IFtdICAgICA9IE5vdGhpbmcKICAgIHNvcnQgKHg6eHMpID0gSnVzdCAkIGZvbGRsIGYgW3hdIHhzCiAgICBmICh6OnpzKSB5ICB8IHogPCB5ICAgICA9IHogOiB5IDogenMKICAgICAgICAgICAgICAgIHwgb3RoZXJ3aXNlID0geSA6IHogOiB6cwoKbWFpbiA6OiBJTyAoKQptYWluID0gZG8KICB4cyA8LSByYW5kb21ScyAoJ2EnLCAneicpIGBmbWFwYCBnZXRTdGRHZW4KICBwcmludCAkIGJ1YmJsZVNvcnQgJCB0YWtlIDQyIHhzCg==