Haskell中的快速排序错误

时间:2014-03-09 03:06:52

标签: haskell quicksort

请检查我的Haskell程序代码 GHC表示第9行输入'\'的解析错误。 我真的不知道如何纠正它。

    import System.IO
    import Data.Time.Clock
    import Random 
    qsort [] = [] 
    qsort (x:xs) = qsort1 elts_lt_x ++ [x] ++ qsort1 elts_greq_x 
                    where 
                      elts_lt_x   = [y | y <- xs, y < x] 
                      elts_greq_x = [y | y <- xs, y >= x]
    module Main where
    main = do    
        x <- getLine
        gen=mkStdGen 60
        arrays=take (read x) (randomRs (1,(read x)) gen ::[Int])
        start <- getCurrentTime
        print(take 1(qsort arrays))    
        end <- getCurrentTime
        print $ diffUTCTime  end start

1 个答案:

答案 0 :(得分:4)

  • module ...行在import ...之前。
  • 我认为qsort1应为qsort
  • 对于价值分配,您需要let。例如let gen = ...
  • 您应该考虑使用System.Random代替haskell98 Random模块。
  • 讨论了Quicksort的定义。在Haskellwiki: Why Haskell Matters上,它也称为Filtersort。