let rec
qsort = function | [ ] -> [ ] | h
:: t -> qsort ( List.
filter ( ( >= ) h
) t
) @ [ h] @
qsort ( List.
filter ( ( < ) h
) t
)
[ < EntryPoint> ]
let main args =
let sample
= "99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0" .
Split ( ',' ) |> Seq.
iter ( printf "%s;" )
System.
Console .
WriteLine ( qsort [ ] ) 0
bGV0IHJlYyBxc29ydCA9IGZ1bmN0aW9uIHwgW10gICAtPiBbXQogICAgICAgICAgICAgICAgICAgICAgICAgfCBoOjp0IC0+IHFzb3J0IChMaXN0LmZpbHRlciAoKD49KSBoKSB0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAgW2hdIEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxc29ydCAoTGlzdC5maWx0ZXIgKCg8KSBoKSB0KQoKCls8RW50cnlQb2ludD5dCmxldCBtYWluIGFyZ3MgPSAKICAgICAgICBsZXQgc2FtcGxlID0gIjk5LDk4LDk3LDk2LDk1LDk0LDkzLDkyLDkxLDkwLDg5LDg4LDg3LDg2LDg1LDg0LDgzLDgyLDgxLDgwLDc5LDc4LDc3LDc2LDc1LDc0LDczLDcyLDcxLDcwLDY5LDY4LDY3LDY2LDY1LDY0LDYzLDYyLDYxLDYwLDU5LDU4LDU3LDU2LDU1LDU0LDUzLDUyLDUxLDUwLDQ5LDQ4LDQ3LDQ2LDQ1LDQ0LDQzLDQyLDQxLDQwLDM5LDM4LDM3LDM2LDM1LDM0LDMzLDMyLDMxLDMwLDI5LDI4LDI3LDI2LDI1LDI0LDIzLDIyLDIxLDIwLDE5LDE4LDE3LDE2LDE1LDE0LDEzLDEyLDExLDEwLDksOCw3LDYsNSw0LDMsMiwxLDAiLlNwbGl0KCcsJyl8PiBTZXEuaXRlcihwcmludGYgIiVzOyIpCgogICAgICAgIFN5c3RlbS5Db25zb2xlLldyaXRlTGluZShxc29ydCBbXSkgCiAgICAgICAgMA==