官术网_书友最值得收藏!

ReasonML

We're going to explore type-driven development using ReasonML (https://reasonml.github.io/). Reason is a JavaScript-like syntax and is also a set of tools for OCaml (https://ocaml.org/). OCaml is a mature statically typed functional programming language with excellent support for object-oriented and modular programming.

We're going to write Reason code and compile it to JavaScript using the BuckleScript compiler (https://bucklescript.github.io/). BuckleScript takes input from Reason code and outputs essentially a simple subset of ES5 (that is, no ES2015-style classes, no arrow functions, and so on). This will allow us to write strongly statically typed code and see what the output JavaScript looks like with all the types stripped away.

BuckleScript, by default, outputs JavaScript files with the extension .bs.js to distinguish them from your other JS files. You can see this in the example output file, src/Ch01/Ch01_Demo.bs.js.

The Reason toolkit currently consists of:

  • A code formatting and syntax translation tool, refmt
  • An interactive code evaluation environment, rtop
  • A build manager for native-compilation projects (we won't need this one for this book), rebuild
  • A tool that provides intellisense abilities to editors, ocamlmerlin-reason

These tools work together to provide a minimal, yet powerful, development experience. Together with a good editor (we recommend Visual Studio Code), they cover most of your day-to-day development needs.

主站蜘蛛池模板: 桐柏县| 那曲县| 隆林| 友谊县| 时尚| 昭苏县| 云阳县| 南华县| 永州市| 沙坪坝区| 新营市| 林甸县| 玛纳斯县| 印江| 洪江市| 山丹县| 泰和县| 旺苍县| 秦安县| 阳泉市| 磐安县| 甘德县| 特克斯县| 汾阳市| 庆云县| 郁南县| 岱山县| 荥阳市| 沂南县| 新乡市| 江西省| 邵阳市| 彭泽县| 宜兴市| 阿巴嘎旗| 临武县| 东明县| 林周县| 桂东县| 临清市| 鸡泽县|