请检查我的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
最佳答案
module ...
行位于import ...
之前。- 我认为
qsort1
应该是qsort
。 - 对于赋值,您需要
let
。如let gen = ...
. - 您应该考虑使用
System.Random
而不是 haskell98Random
模块。 - 有一个关于快速排序定义的讨论。上Haskellwiki: Why Haskell Matters它也称为过滤排序。
关于haskell - Haskell 中的快速排序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22277898/