let name = expression in
定义一个命名的局部表达式 直到;;
结束本代码块
局部表达式和变量不同 更类似于常量表达式 局部绑定 只能被隐藏 不能被改写
1 | let f a b = |
可以在top level
中定义全局名
引用 真正的可赋值/修改的变量
1 | let my_ref = ref 0;; |
类似于指针`
Nested Funcions
嵌套函数
lexical scoping
词法变量域
嵌套函数的格式和局部命名表达式相同。let name arguments = function-definition in
.
OCaml通常将文件名的第一个字母大写作为模块名
一是在程序开头声明open Graphics;;
。二是在所有函数调用前加上前缀,比如Graphics.open_graph
。
open
类似于pythonfrom xx import *
所有Pervasives
中的符号会被自动引入所有的OCaml程序中。
重命名模块 module Gr = Graphics;;
;
被称为sequence point
序列点 也是一个运算符 unit -> 'b -> 'b
接受两个值并返回第二个