小编lev*_*er7的帖子

函数式编程中的签名/类型(OCaml)

我开始学习函数式编程(OCaml),但我不了解关于fp的一个重要主题:签名(我不确定它是否是一个正确的名称).当我输入一些东西并用ocaml编译时,我得到了例子:

# let inc x = x + 1 ;;
val inc : int -> int = <fun>
Run Code Online (Sandbox Code Playgroud)

这是微不足道的,但我不知道,为什么:

let something f g a b = f a (g a b)
Run Code Online (Sandbox Code Playgroud)

给出一个输出:

val something : (’a -> ’b -> ’c) -> (’a -> ’d -> ’b) -> ’a -> ’d -> ’c = <fun>
Run Code Online (Sandbox Code Playgroud)

我想,这个主题对于你们很多人来说绝对是fp的基础,但我在这里寻求帮助,因为我没有在互联网上找到任何有关OCaml中签名的内容(有一些关于Haskell签名的文章,但不是解释).

如果这个主题以某种方式存活下来,我在这里发布了几个函数,这些签名让我感到困惑:

# let nie f a b = f b a ;; (* flip *)
val nie : (’a -> ’b -> ’c) …
Run Code Online (Sandbox Code Playgroud)

ocaml functional-programming signature

9
推荐指数
2
解决办法
3937
查看次数

标签 统计

functional-programming ×1

ocaml ×1

signature ×1