通过 OCaml 更好地编程

你已经掌握了像 Python 或 Java 这样的主流语言的编程技能吗?很好。这本书适合你。是时候学习如何更好地编程了。是时候学习一种函数式语言,OCaml。

函数式编程提供了与您迄今为止所经历的编程不同的视角。适应这种视角需要放弃旧观念:赋值语句、循环、类和对象等。这并不容易。

南隠(南隐),日本明治时代(1868-1912 年)的一位大师,接待了一位前来探讨禅宗的大学教授。南隠给他倒茶。他将访客的杯子倒满,然后继续倒。教授看着溢出来,直到他再也忍受不住。“满了,再也倒不下去了!”“就像这个杯子一样,”南隠说,“你充满了自己的观点和猜测。除非你先倒空你的杯子,否则我怎么能向你展示禅呢?”

我相信学习 OCaml 会让你成为更好的程序员。以下是原因:

  • 您将体验到不可变性的自由,其中所谓的“变量”的值无法更改。再见,调试。
  • 您将在抽象化方面有所提高,这是通过提取共性来避免重复的实践。再见,臃肿的代码。
  • 你将接触到一种类型系统,起初你会讨厌它,因为它会拒绝你认为是正确的程序。但你会逐渐喜欢它,因为你会谦卑地意识到它是正确的,而你的程序是错误的。再见,失败的测试。
  • 您将接触到一些编程语言的理论和实现,帮助您理解在编写代码时向计算机传达的基础知识。告别神秘和魔法般的咒语。

所有这些想法都可以在其他背景和语言中学习。但 OCaml 提供了一个难得的机会将它们全部捆绑在一起。OCaml 将改变你对编程的思考方式。

“一种不影响你对编程思考方式的语言是不值得学习的。” —艾伦·J·佩里斯(1922-1990 年),图灵奖的首位获得者

此外,OCaml 是美丽的。OCaml 优雅、简洁、优美。美学很重要。代码不仅仅是为了让机器执行而编写的。它也是为了与人类沟通而编写的。优雅的代码更易阅读和维护。编写优雅的代码并不一定更容易。

你写的 OCaml 代码可以是时尚和有品位的。起初,这可能并不明显。毕竟,你正在学习一门新语言——你不会期望在初学梵文的第一天就欣赏梵文诗歌。事实上,当你努力用一门新语言表达自己时,你可能会感到沮丧一段时间。所以给自己一些时间。当你掌握了 OCaml 之后,当你回到其他你已经了解的语言时,你可能会惊讶地发现它们变得多么丑陋。