改变Haskell中元组的顺序

时间:2018-04-13 10:28:50

标签: haskell tuples

我在Haskell工作是为了完成一项任务,我似乎无法弄清楚我认为应该容易的事情。这是一个行编辑器。

这是一项大学任务,我不是要求完整的编辑感谢,只是问题的答案。

我有一个元组([Char],[Char],[Char],[Char]),基本上转换为(left, right, highlight, copybuffer)。我想在屏幕上打印它,因此显示为(left, highlight, right, copybuffer)

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:4)

您可以在此处使用模式匹配,然后使用所需顺序构建 new 元组。例如:

.xml-editor .text-field,
.xml-editor .text-field:focused {
    /* remove TextField border & background */
    -fx-focus-color: transparent;
    -fx-control-inner-background: transparent;
    -fx-faint-focus-color: transparent;
    -fx-text-box-border: transparent;
    -fx-text-fill: black;
    -fx-padding: 0;
    -fx-font-family: 'monospaced';
}

.xml-editor Text {
    -fx-font-family: 'monospaced';
}

请注意,此函数具有更通用的签名(此处changeorder :: (a, b, c, d) -> (a, c, b, d) changeorder (lef, rig, high, copy) = (lef, high, rig, copy) lef等可以有不同的类型)。因此,我们可以将该函数重用于其他问题,或者例如,如果您改变了对这个特定问题的参数类型的想法。