1. Preface

Welcome to ATS programming world!

This book is a beginning guide for ATS programming based on the book プログラミングの基礎 (Programming Foundations) that is recognized as a good beginning guide for OCaml.

1.1. What is ATS programming language?

Sometimes, you know OCaml or Haskell as functional and strongly typed language. Why do we need to learn a new functional language? There are some reason:

  • These languages can’t run without any GC
  • These languages needs some runtime
  • These languages can’t use type out of their heap
  • These languages can’t capture program invariant using dependent type

ATS has more strong type than theirs, and can run without any runtime. This characteristic of ATS language wides the application range of functional programming.

The characteristic of ATS language is found at The ATS Programming Language site.

1.2. The goal of this book

The goal of this book is “You become able to read Introduction to Programming in ATS alone.”

ATS language society already has some good documents. Introduction to Programming in ATS is one of them. However, it’s hard to read for beginners, because ATS’s value is strongly typed using dependent type. The dependent type appears in normal code, and it means the beginners can’t understand type error message on ATS.

I believe understanding the error message is a shortcut to become a good programmer on ATS.