假设我有一个元组列表,类似于以下示例:
在 Elm 中,如何根据其第一个元素按升序对列表进行排序,以便我们获得以下结果?
然而,我遇到了以下类型的编译器错误:
我猜编译器正在按照
[(5, "a"), (1, "c"), (7, "d")]
在 Elm 中,如何根据其第一个元素按升序对列表进行排序,以便我们获得以下结果?
[(1, "c"), (5, "a"), (7, "d")]
使用Elm List文档,看起来sortBy
和sortWith
函数对于这种情况会很有用。我的实现尝试如下:
maxTuples : Tuple(a, b) -> Tuple(a, b) -> Tuple(a, b)
maxTuples t1 t2 =
case compare t1 t2 of
((Tuple.first t1) >= (Tuple.first t2)) -> GT
_ -> LT
sortByFirst : List (Tuple (a, b)) -> List (Tuple (a, b))
sortByFirst lst =
List.sortWith maxTuples lst
然而,我遇到了以下类型的编译器错误:
I ran into something unexpected when parsing your code!
99| ((Tuple.first t1) >= (Tuple.first t2)) -> GT
^
I am looking for one of the following things:
an upper case name
我猜编译器正在按照
List
库的API寻找GT
/LT
/EQ
,但如果是这样,我不确定如何使用sortBy
或sortWith
来按每个元素的第一个索引对Elm中的Tuple列表进行排序。
List(comparable, a2) -> List(comparable, a2)
但这是正确的想法。 - Adam Freymiller