SMLデータ型のサブセットとしてのサブタイプ
純粋に機能的なデータ構造に関する岡崎の本で私が嫌いないくつかのことの1つは、彼のコードが網羅的なパターンマッチングで散らかされていることです。例として、彼にリアルタイムキューの実装を示します(不要な中断を排除するためにリファクタリングしました)。 infixr 5 ::: datatype 'a stream = Nil | ::: of 'a * 'a stream lazy structure RealTimeQueue :> QUEUE = struct (* front stream, rear list, schedule stream *) type 'a queue = 'a stream * 'a list * 'a stream (* the front stream is one element …