String 按字母顺序对字符串排序
我必须编写一个函数String 按字母顺序对字符串排序,string,sorting,haskell,String,Sorting,Haskell,我必须编写一个函数 sort3 :: String -> String -> String -> (String, String, String) 按函数排序(对三个字符串a、b和c进行排序时,有六种方法可以对字符串进行排序: (a、b、c) (a、c、b) (b、a、c) (b、c、a) (c、a、b)及 (c、b、a) 在这些答案中,关系e1≤e2≤e3应该保持不变,ei是元组中的第i个元素 因此,这意味着您可以通过以下方式实现该功能: sort3 :: Ord a =&
sort3 :: String -> String -> String -> (String, String, String)
按函数排序(对三个字符串a、b和c进行排序时,有六种方法可以对字符串进行排序:
sort3 :: Ord a => a -> a -> a -> (a, a, a)
sort3 a b c | … <= … && … <= … = (…, …, …)
| … <= … && … <= … = (…, …, …)
| ⋮
请注意,在实现
sort3
时,可以使用sort2
。实际上,您可以使用三个sort2
调用来正确排序3元组。不过,这是一种稍微高级一点的方法。我建议您首先在不使用sort2
的情况下实现sort3
,然后在以下方面实现它关于sort2
什么不适合你的方法?你能展示一个公平的尝试,并解释什么不适合。缺乏经验不是缺乏努力的借口。sort3::String->String->String->(String,String,String)sort3“”(您在使用库函数方面有任何限制吗?sort
fromData.List
对列表进行排序,这是一行。不要将代码放在注释中,直接添加到您的问题中。
sort3 :: Ord a => a -> a -> a -> (a, a, a)
sort3 a b c | … <= … && … <= … = (…, …, …)
| … <= … && … <= … = (…, …, …)
| ⋮
sort2 :: Ord a => a -> a -> (a, a)
sort2 a b | a <= b = (a, b)
| otherwise = (b, a)