在Haskell中反转列表

use*_*052 1 haskell list

我有一个清单:

[(HOUSE, 1), (FRAME, 2), (WATER, 3), (WIND, 4), (CREST, 5)]
Run Code Online (Sandbox Code Playgroud)

我想像这样反转它:

[(CREST, 5), (WIND, 4), (WATER, 3), (FRAME, 2), (HOUSE, 1)]
Run Code Online (Sandbox Code Playgroud)

我怎么做?

一位朋友告诉我,有一种方法可以反转它,但首先你需要反转元组,因为有一个函数只能"查看"第一个要排序的元素,而且因为我按照单词之后的数字排序,我需要把数字放在首位.

例: (5, CREST)

我真的需要这样做吗?如果我这样做,接下来我该怎么做?因为我已经有一个函数可以反转元组的顺序.现在我需要反转整个列表.

Obs.:列表是用户输入.

如果有办法在不反转元组的情况下执行此操作,请告诉我.也许我正试图以一种困难的方式做一件简单的事情.

请解释代码如何以简单的方式工作,因为我是初学者.

Sho*_*hoe 6

你可以使用reverse(从中导入  Prelude):

reverse [(HOUSE, 1), (FRAME, 2), (WATER, 3), (WIND, 4), (CREST, 5)]
-- [(CREST, 5),(WIND, 4),(WATER, 3),(FRAME, 2),(HOUSE, 1)]
Run Code Online (Sandbox Code Playgroud)

Live demo

没有必要对列表中的元组进行排序和/或反转.