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

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

3 голосов
/ 21 октября 2019

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

1 Ответ

3 голосов
/ 21 октября 2019

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> >);
...