Какие контракты подражателя есть у Racket помимо `new-∀/c` и `new-∃/c`?

контракты классифицируются в три категории: фиксированные контракты, контракты с сопровождающим и контракты с имитаторами.

Что касается контрактов Impersonator, единственным примером, который я смог найти, являются контракты для параметрического полиморфизма. Есть ли другие примеры, кроме этих?


person hugomg    schedule 08.11.2013    source источник


Ответы (1)


Контракты объектов и классов (например, class/c, object/c и т. д.) контракты с имитаторами. Хотя в конечном итоге могут быть предложены их сопровождающие версии. Напротив, невозможно превратить параметрические контракты в контракты сопровождения.

Рекурсивные контракты, созданные с помощью recursive-contract также по умолчанию использует контракты имперсонатора, но может быть настроен на любой тип.

person Asumu Takikawa    schedule 08.11.2013