はじめに
OCamlのモジュールシステムとCommon LispのCLOSは、どちらもプログラムを構造化し、再利用性を高めるための強力な仕組みです。しかし、そのアプローチは大きく異なります。今回は、図形を描画するという同じ具体例を使って、それぞれの違いを見ていこうと思います。
OCamlのモジュールシステムとCommon LispのCLOSは、どちらもプログラムを構造化し、再利用性を高めるための強力な仕組みです。しかし、そのアプローチは大きく異なります。今回は、図形を描画するという同じ具体例を使って、それぞれの違いを見ていこうと思います。
型コンストラクタとは、ざっくり言うと「新しい型を作るための型」です。
普段使っているi32
やString
などは、それ自体が完成された一つの型です。
一方、型コンストラクタは、型を引数として受け取り、新しい型を生成するものです。
Rustのトレイトは、型が持つべき振る舞い(メソッド)を定義する機能です。これは、他の言語におけるインターフェースや型クラスに非常に似ています。
Rustの関連型は、トレイトに特定の型を紐づけるための仕組みで、簡単に言うと「このトレイトを実装する型は、必ずこの名前で特定の型を持つ必要がある」というルールを定義するものです。