Prelude> sortByFst = sortBy (\x y -> fst x `compare` fst y)
<interactive>:7:13: error:
Variable not in scope:
sortBy :: (((), b0) -> ((), b1) -> Ordering) -> t
Run Code Online (Sandbox Code Playgroud)
这个错误是什么意思?
您试图调用名为的函数sortBy,但GHCi并未发现任何此类函数。发生这种情况是因为sortBy存在Data.List而不存在Prelude。要使用除之外的其他任何模块Prelude,您需要导入它们,这样import Data.List可以使您的代码正常工作。
另外,对于您正在执行的操作,这sortBy是该工作的错误工具。您的lambda等于comparing fst,并且sortBy (comparing fst)与相同sortOn fst。因此,sortByFst = sortOn fst它与您的代码执行相同的操作,但是更加简单快捷。