【发布时间】:2021-10-11 19:36:08
【问题描述】:
我对haskell 很陌生,我已经开始阅读“在haskell 中编程”这本书。我遇到了一个叫做swap的函数
swap (x,y) = (y,x)
和函数对。
pair x y = (x,y)
然后我开始怀疑是否可以像这样将这两个功能结合起来
swapPair x y = (y,x)
并使用两个 priar 函数作为帮助函数。
【问题讨论】:
-
下面的答案提供了几种选择,包括一些所谓的“无点风格”。但是,如果您是初学者,我建议您只关注最简单、直接的组合
swapPair x y = swap (pair x y),而忽略更高级的选项,这些选项实际上并不能提高可读性和性能。 -
有一个基本的 Haskell 高阶函数,名为
curry,类型为((a, b) -> c) -> a -> b -> c。它接受一个[使用元组并返回某物的函数]并返回一个[使用元组的第一个元素并返回一个[使用元组的第二个元素并返回某物的函数]]的函数。swapPair是curry swap。
标签: haskell