gpt4 book ai didi

haskell - Haskell 模式匹配的 F# 版本

转载 作者:行者123 更新时间:2023-12-01 17:15:31 25 4
gpt4 key购买 nike

如何在 F# 中干净地执行此 haskell?

add 1 2 x = 3 + x
add 1 x y = 1 + x + y
add z x y = z + x + y

最佳答案

你不能重载函数本身,但你可以直接使用模式匹配:

let add z x y =               // curried multiple parameters
match z, x, y with // convert to three-tuple to match on
| 1, 2, x -> 3 + x
| 1, x, y -> 1 + x + y
| z, x, y -> z + x + y

用法符合预期:add 1 2 3

如果您愿意使用元组作为参数(即放弃柯里化(Currying)和部分应用),您甚至可以编写更多简写:

let add =                     // expect three-tuple as first (and only) parameter
function // use that one value directly to match on
| 1, 2, x -> 3 + x
| 1, x, y -> 1 + x + y
| z, x, y -> z + x + y

现在的用法是:add (1, 2, 3)

关于haskell - Haskell 模式匹配的 F# 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11015684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com