gpt4 book ai didi

generics - 了解 syb 样板文件消除

转载 作者:行者123 更新时间:2023-12-04 06:55:39 24 4
gpt4 key购买 nike

http://web.archive.org/web/20080622204226/http://www.cs.vu.nl/boilerplate/ 中给出的示例中

-- Increase salary by percentage
increase :: Float -> Company -> Company
increase k = everywhere (mkT (incS k))

-- "interesting" code for increase
incS :: Float -> Salary -> Salary
incS k (S s) = S (s * (1+k))

为什么 increase 函数编译时没有为其类型签名中提到的第一个公司绑定(bind)任何内容。

这是否类似于分配给部分函数?为什么会这样?

最佳答案

是的,它与部分应用程序的概念相同。该行更短(但可以说不太清楚)相当于

increase k c = everywhere (mkT (incS k)) c

作为everywhere接受两个参数但只给定一个,类型为 everywhere (mkT (incS k))Company -> Company .因为这正是 increase k为每个 Float k 返回 increase 的结果类型是Float -> Company -> Company .

关于generics - 了解 syb 样板文件消除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2593953/

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