作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
let compose f g = fun x -> f (g x)
let mal2 x = 2 * x
let plus1 x = x + 1
let mal2Plus1 = compose plus1 mal2
val compose : ('b -> 'c) -> ('a -> 'b) -> ('a -> 'c)
谁能教我如何阅读compose的函数类型
最佳答案
有多种方法可以读取函数类型,具体取决于您使用它的方式。但是,如果您以示例中演示的方式使用它(compose plus1 mal2
),那么以下阅读是有意义的:
compose
是一个函数:
接受一个参数 'b -> 'c
它本身就是一个知道如何将 'b
类型的值转换为不同值的函数输入 'c
接受另一个参数 'a -> 'b
,它(再次)是一个可以将值 'a
转换为 ' 类型值的函数b
.
给定这两个函数,可以按顺序运行它们 - 如果你有一个值 'a
你可以应用第二个函数来获得一个 'b
类型的值code>,这个值可以传递给第一个函数来获取'c
。这正是 compose
所做的:
'a
并产生 'c
(这只能通过将第二个函数应用于 'a
,然后将第一个函数应用于结果)关于f# - 如何用英语阅读函数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13823697/
我是一名优秀的程序员,十分优秀!