gpt4 book ai didi

返回元组的 F# 链接函数

转载 作者:行者123 更新时间:2023-12-05 09:03:32 24 4
gpt4 key购买 nike

我是 F# 的新手,正在尝试链接函数以创建高阶函数。

一个简化的例子是

init 返回一个元组

validate 接受一个元组并返回 bool

    let init : string * string =
("1", "2")

let validate ((a: string), (b: string)) : bool =
a.Equals(b)

let test = init >> validate

错误

这个表达式应该有类型 'a -> 'b' 但这里有类型 'string * string'

最佳答案

正如 Piotr 的回答所解释的那样,您收到错误是因为您有一个值和一个函数。要组合它们,您可以将 init 变成一个函数,但在这种情况下您实际上不需要使用组合。

如果您想将一个值作为参数传递给函数,通常将其作为参数传递会简单得多:

let res = validate init

或者,如果您有多个函数要按顺序应用于您的输入,您可以使用管道运算符执行此操作:

let res = init |> validate

使用 >>> 的函数组合是一个很好的函数技巧,但我认为它实际上在标准 F# 代码中并不像大多数人想象的那么常见。我一直使用 |>,但很少使用 >>>

关于返回元组的 F# 链接函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69966116/

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