语法和语义是学习编程语言的强大范式。当我们了解 OCaml 的特性时,我们会小心地写下它们的语法和语义。我们已经看到,可以有多种语法来表示相同的语义思想,也就是相同的计算。
函数式应用的语义是 OCaml 和函数式编程的核心,这是我们在整个课程中会反复提到的,以加深我们的理解。
术语和概念
- anonymous functions 匿名函数
- assertions 断言
- binding 绑定
- binding expression 绑定表达式
- body expression 体表达式
- debugging 调试
- defensive programming 防范性编程
- definitions 定义
- documentation 文档
- dynamic semantics 动态语义
- evaluation 计算/求值
- expressions 表达式
- function application 函数应用
- function definitions 函数定义
- identifiers 标识符
- idioms 惯用语
- if expressions if 表达式
- lambda expressions lambda 表达式
- let definition let 定义
- let expression let表达式
- libraries 库
- metavariables 元变量
- mutual recursion 相互递归
- pipeline operator 管道运算符
- postcondition 后置条件
- precondition 前置条件
- printing 打印
- recursion 递归
- semantics 语义
- static semantics 静态语义
- substitution 替换
- syntax 语法
- tools 工具
- type checking 类型检查
- type inference 类型接口
- values 值
延伸阅读
-
OCaml导论(Introduction to Objective Caml), 第三章
-
OCaml from the Very Beginning, 第二章
-
Real World OCaml, 第二章
-
Tail Recursion, The Musical. Tail-call optimization explained in the context of JavaScript with cute 8-bit animations, and Disney songs!
在 JavaScript 的背景下,用可爱的 8 位动画和迪士尼歌曲来解释尾调用优化!
注:本书是康奈尔大学 CS 3110 数据结构和函数式编程的教材。原书为英文版,在学习的过程中,根据自己的理解,翻译了一些,做一个记录,版权归原作者所有,如有侵权,请联系我删除。