Что означает $ в MiniZinc?

В Руководстве по MiniZinc я вижу символ $, используемый в разных местах ( в основном в разделе Справочное руководство), но я не не удалось найти определение. Кто-нибудь любезно объяснит мне это. Спасибо.


person RussAbbott    schedule 21.10.2019    source источник


Ответы (1)


MiniZinc поддерживает три основных типа: {int, float, bool }. В документации используется $T в качестве заполнителя для любого типа, содержащегося в этом наборе, так что нет необходимости предоставлять три версии сигнатуры каждой функции, по одной для каждого базового типа.

Я предполагаю, что этот стиль синтаксиса вдохновлен shell, где нотация $T используется для разыменования имени T и обычно дает значение, соответствующее такому имени/ячейке памяти.

Можно также представить $T как шаблон typename/class на языке C++, который выполняет точно такую ​​же цель.

// MiniZinc Docs
set of  $U:    array_union(array[$T]  of     set of  $U)

// C++-like style
template <class T, class U>
set<U> array_union(map< T, set<U> >);
person Patrick Trentin    schedule 21.10.2019