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

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.

主站蜘蛛池模板: 大同市| 晋州市| 离岛区| 忻州市| 丁青县| 界首市| 运城市| 邛崃市| 扶余县| 宕昌县| 泌阳县| 延寿县| 六枝特区| 厦门市| 临泽县| 临海市| 鄂托克旗| 甘孜县| 河东区| 胶州市| 贵州省| 陇川县| 三原县| 丰城市| 宁海县| 博爱县| 南雄市| 韩城市| 高要市| 遂宁市| 布尔津县| 正镶白旗| 新郑市| 龙岩市| 佛教| 垣曲县| 扎囊县| 大竹县| 丰都县| 株洲县| 香港 |