Hai*_*Hai 4 sorting haskell functional-programming
为什么Haskell的sort
的Data.List
忽视第三位?
Prelude>sort ["1","200","234","30"]
["1","200","234","30"]
Run Code Online (Sandbox Code Playgroud)
编辑:对不起,我没有意识到这是字符串.我的错.
Dar*_*rio 27
不,但它确实按照它应该做的排序字符串:按字典顺序排列
该关系"200" < "30"
的原因与此相同"Hello" < "World"
.
因此,如果您希望Haskell按数值排序,则必须对实际数字进行排序.
import Data.List
import Data.Function
sortNumeric = sortBy (compare `on` (read :: String -> Int))
sortNumeric ["1", "200", "234", "30"]
Run Code Online (Sandbox Code Playgroud)
但是:为什么你的列表中包含"数字"包含字符串?考虑使用正确的[Int]
.