Working with ReasonML

ReasonML offers a sound type system which means that programs with incorrect types will be rejected by the compiler so that a program won’t get into invalid states. Every line of code is covered by the type system. This course teaches you the fundamentals of ReasonML. In this course, a number of small applications will be developed by students throughout this engaging class. Students will learn about strong type inference, which helps to eliminate time writing type annotations so there is more focus on business logic instead. The course also explores expressive type features coupled with an extremely fast edit-compile-run feedback loop which increases productivity. Attendees must have experience in developing in JavaScript for the web. Experience using React will be of benefit but not required.

Course Summary

Utilize ReasonML when creating applications.
Developers and developer teams needing to learn ReasonML.
Skill Level: 
Learning Style: 

Hands-on training is customized, instructor-led training with an in-depth presentation of a technology and its concepts, featuring such topics as Java, OOAD, and Open Source.

Hands On help
3 Days
Productivity Objectives: 
  • Identify the major benefits of using ReasonML
  • Set up and build a ReasonML project
  • Describe how ReasonML’s rich and strong type system can help you ship code that is free of type errors
  • Create, use and access ReasonML’s sophisticated type features
  • Write unit tests ReasonML code using the Jest test framework
  • Scaffold and modify a web project using ReasonReact

What You'll Learn

In the Working with ReasonML training course you’ll learn:

  • Introducing ReasonML
    • Why ReasonML?
    • An Overview of ReasonML
    • ReasonML and OCaml
    • BuckleScript
    • Build Targets and Runtime Environments
    • Running ReasonML Code
    • The ReasonML Ecosystem
  • Getting Started
    • Toolchain Overview
    • Installing bs-platform
    • bsb Themes
    • Generating a New Project
    • Building a Project
    • IDE Integration
  • Reason’s Syntax
    • Comments
    • Names
    • Uppercase vs Lowercase Names
    • let Bindings
    • let Binding Names
  • Scope
    • Scope
    • Shadowing
    • Scopes are Expressions
  • Types and Type Inference
    • Programming with Types
    • Types and Values
    • Determining a Value’s Type
    • Type Inference
  • Overview of Reason’s Built-in Types
    • String & Char
    • Boolean
    • Integer & Float
    • Tuple
    • Record
    • Variant Types
  • 3 ReasonML Fundamentals
    • Polymorphic Variants
    • Null & Undefined
    • Option Types
    • List
    • Array
    • Function Types
  • User-Defined Types
    • ReasonML’s Type Sublanguage
    • Defining a Type Alias
    • Defining a Variant
    • Ambiguous Types
    • Type Constructors
    • Defining a Parameterized Type
    • Example: a JSON Type
    • Using our JSON Type
    • Combining Types
    • User-Defined Types
  • Using Product Types
    • Using Record Types
    • Using Tuple Types
    • Using Object Types
    • Using JavaScript Object Types
  • Using Sum Types
    • Using Variant Types
    • Pattern Matching
    • Reason’s switch Expression
    • Exhaustivity Checking and the when Clause
    • Polymorphic Variant Types
  • Defining Functions
    • Defining a Function
    • Using Labeled Arguments
    • Optional Labeled Arguments
    • Function Types
    • Currying
    • Partial Application
  • Modules
    • Modules
    • Creating a Component
    • OCaml and ReasonML Modules
    • Nesting Modules
    • Files as Modules
  • Unit Testing
    • The Jest Test Framework
    • Installing Jest and bs-jest
    • Writing a Test
    • Running the Tests
  • Calling JavaScript Code from ReasonML
    • Embedding Raw (Untyped) JavaScript
    • Adding Type Annotations
    • Creating Bindings
    • Introducing external
    • Common Use Cases
  • Using ReasonReact
    • What’s ReasonReact?
    • Setting It Up
    • Writing a Component
    • Naming Components
    • Routing

Get Custom Training Quote

We'll work with you to design a custom Working with ReasonML training program that meets your specific needs. A 100% guaranteed plan that works for you, your team, and your budget.

Learn More

Chat with one of our Program Managers from our Boulder, Colorado office to discuss various training options.

DevelopIntelligence has been in the technical/software development learning and training industry for nearly 20 years. We’ve provided learning solutions to more than 48,000 engineers, across 220 organizations worldwide.

About Develop Intelligence
Di Clients
Need help finding the right learning solution?   Call us: 877-629-5631