はじめに 最近Advanced Topics in Types and Programming Language(ATTaPL)という本を読んでいるのですが、この本のはじめのSubstructural Type Systemの章で解説されているLinear Lambda Calculus(線形ラムダ計算)について、イマイチ理解が進まなかったので、せめて概形でも掴もうと思い、OCamlを使って型システムを実装してみたので、知識の整理も兼ねて今回は実装方法や線形型の仕組みについて簡単に説明していこうと思います。 githubのリポジトリはこちら github.com 線形型とは 線形型(linear type)とは、修飾された値が確実に一回のみ使用されることを保証する型です。この、確実に一回のみ使用されるという特性を活かして、メモリが確実に解放される事や、オープンしたファイルが確実にクローズさ