gpt4 book ai didi

f# - F# 显式类型参数的用例是什么?

转载 作者:行者123 更新时间:2023-12-01 09:01:48 26 4
gpt4 key购买 nike

据我所知,值定义中的显式类型参数是克服“值限制”问题的一种方法。
还有其他需要用到的情况吗?

更新:我的意思是“显式通用构造”,其中类型参数括在尖括号中,即

let f<'T> x = x

最佳答案

多态递归是另一种情况。也就是说,如果你想在函数体中使用不同的泛型实例化,那么你需要在定义上使用显式参数:

// perfectly balanced tree
type 'a PerfectTree =
| Single of 'a
| Node of ('a*'a) PerfectTree

// need type parameters here
let rec fold<'a,'b> (f:'a -> 'b) (g:'b->'b->'b) : 'a PerfectTree -> 'b = function
| Single a -> f a
| Node t -> t |> fold (fun (a,b) -> g (f a) (f b)) g

let sum = fold id (+)

let ten = sum (Node(Node(Single((1,2),(3,4)))))

关于f# - F# 显式类型参数的用例是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15825034/

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