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进行排序时,有六种方法可以对字符串进行排序:

  • (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 => 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
    from
    Data.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)