Что такое экзистенциальный тип? - PullRequest
157 голосов
/ 15 ноября 2008

Я прочитал статью в Википедии Экзистенциальные типы . Я понял, что они называются экзистенциальными типами из-за экзистенциального оператора (∃). Я не уверен, какой в ​​этом смысл. В чем разница между

T = ∃X { X a; int f(X); }

и

T = ∀x { X a; int f(X); }

Ответы [ 11 ]

0 голосов
/ 15 ноября 2008

Как я понимаю, это математический способ описания интерфейсов / абстрактного класса.

Что касается T = ∃X {X a; int f (X); }

Для C # это будет означать общий абстрактный тип:

abstract class MyType<T>{
    private T a;

    public abstract int f(T x);
}

«Экзистенциальный» просто означает, что есть некоторый тип, который подчиняется определенным здесь правилам.

...