gpt4 book ai didi

seq 但不是 list 的 F# 值限制?

转载 作者:行者123 更新时间:2023-12-04 23:05:54 25 4
gpt4 key购买 nike

值限制错误:

let myFn (s : string) (args : obj seq) = ()
let myOtherFn = myFn ""

无值限制错误:
let myFn (s : string) (args : obj list) = ()
let myOtherFn = myFn ""

为什么?

最佳答案

所有绑定(bind)都是 automatic generalization 的主题.

由于seq<'T>是一个接口(interface)(IEnumrable 的别名),myOtherFn 的推断类型将会val myOtherFn : ('_a -> unit) when '_a :> seq<obj>这是通用的,然而,myOtherFn 不是函数声明(阅读上面链接中的 值限制 部分),因此自动泛化不能推断这与 val myOtherFn : seq<obj> -> unit 相同.

要强制自动泛化,您可以向 myOtherFn 添加显式参数let myOtherFn args = myFn "" args

关于seq<obj> 但不是 list<obj> 的 F# 值限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34733164/

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