Я знакомлюсь с базой MiniZinc. Итак, вооружившись MiniZinc IDE, я пишу фрагменты, какотладка minizinc (во всяком случае, я нашел ошибку?)
solve satisfy;
string: s1 = "hello";
string: s2 = "world";
function list of int: cdr(list of int: v) =
[v[i] | i in 1..length(v)];
function list of string: cdr(list of string: v) =
[v[i] | i in 1..length(v)];
function string: concat(list of string: V) =
if length(V) == 0 then "" else V[0] ++ concat(cdr(V)) endif;
output [concat([s1," ",s2])++" "++show(cdr([1,2,3]))];
, который отображает
Compiling hello.mzn
Running hello.mzn
hello world [1, 2, 3]
----------
Finished in 49msec
настоящее время, корд из списка Интс кажется неправильным. Я предполагаю, что это моя ошибка, хотя я не могу ее заметить.
Может ли assertions помочь мне здесь? Поскольку я собираюсь использовать Gecode (а затем у меня есть Gist), чтобы на самом деле поставить мой код в производство, могу ли я следовать этому маршруту?
Любой намек оценил ...
редактировать этот фрагмент
solve satisfy;
function list of string: cdr_s(list of string: v) =
[v[i] | i in 2..length(v)];
function string: vcat(list of string: V) =
if length(V) == 0 then "" else V[1] ++ vcat(cdr_s(V)) endif;
output [vcat(["hello"," ","world"])];
отчеты
MiniZinc: type error: no function or predicate with this signature found: `cdr_s(array[int] of string)'
/tmp/MiniZinc IDE-9nYiuF/hello.ozn:2
вне темы - ваша страница MiniZinc недоступна на данный момент? –
Возможно, я должен был упомянуть об этом. Да, http://hakank.org/ не работает уже неделю. Лучшей заменой является использование моей страницы GitHub: https://github.com/hakank/hakank, где публикуются почти все мои модели CP (и все остальное). – hakank
еще одна ошибка, которую я обнаружил после того, как исправил ее с указанием: кажется, что пользовательские функции не могут вызывать другие пользовательские функции ... – CapelliC