【发布时间】:2018-06-20 03:48:22
【问题描述】:
我正在尝试编写一个函数来交换列表中的一对元组,如下所示:
- pairSwap [(1, 2), (3, 4), (5, 6);
[(2,1),(4,3),(6,5)]
在声明函数时,我很难弄清楚我在语法上做错了什么。这是我目前所拥有的:
fun pairSwap ((a : 'a, b: 'a) list) : (('a, 'a) list) =
...
;
我哪里错了?
编辑: 解决方案
fun pairSwap (t : ('a * 'a) list) : ('a * 'a) list =
if null t
then []
else
let
val v = hd t
in
(#2 v, #1 v)::pairSwap (tl t)
end
;
【问题讨论】:
-
这不是链接问题的欺骗:那是关于映射例如的函数
[1,2,3,4]到[2,1,4,3],而这个是关于映射的函数,例如[(1,2),(3,4)]到[(2,1),(4,3)]。 -
不,不完全是,但该问题的标题和给出的答案都可以描述这个问题。