Formatting 我如何才能得到锌的小输出来解释逃逸,而不是直接打印它们?

Formatting 我如何才能得到锌的小输出来解释逃逸,而不是直接打印它们?,formatting,minizinc,Formatting,Minizinc,我正在尝试将教程中的澳大利亚程序转换为使用数组 我的输出有问题,也就是说: % Coloring Australia using nc colors int: nc = 3; % number of colors int: ns = 7; % number of states array[1..nc] of string: colors = ["red", "green", "blue"]; array[1..ns] of string: states = ["wa","

我正在尝试将教程中的澳大利亚程序转换为使用数组

我的输出有问题,也就是说:

% Coloring Australia using nc colors

int: nc = 3;  % number of colors
int: ns = 7;  % number of states
array[1..nc] of string:     colors = ["red", "green", "blue"]; 
array[1..ns] of string:     states = ["wa","nt","sa","q","nsw","v","t"]; 
array[1..ns] of var 1..ns:  indices = [1,2,3,4,5,6,7];

array[1..ns] of var 1..nc: color; % computed color for each state

% I want to use the name as a mnemonic for the index of the state
var int: wa=1; % I know of no alternative to the brute force method
var int: nt=2; var int: sa=3; var int: q=4;
var int: nsw=5; var int: v=6; var int: t=7;

constraint color[wa] != color[nt];  % abutting states
constraint color[wa] != color[sa];
constraint color[nt] != color[sa];
constraint color[nt] != color[q];
constraint color[sa] != color[q];
constraint color[sa] != color[nsw];
constraint color[sa] != color[v];
constraint color[q]  != color[nsw];
constraint color[v]  != color[nsw];

solve satisfy;

/*
  I want a loop to print it out like this:
"wa" = "blue"
"nt" = "green"
...  
*/

output [  
   show( ["\n\(states[j]) = \(colors[color[j]])" | j in indices])
];
/* prints

["\n\"wa\" = \"blue\"", "\n\"nt\" = \"green\"", "\n\"sa\" = \"red\"",     "\n\"q\" = \"blue\"", "\n\"nsw\" = \"green\"", "\n\"v\" = \"blue\"", "\n\"t\" = \"red\""]
*/
如何使show使\n成为新行,而不转义常量中的引号?像perl双引号而不是单引号


和/或有没有办法定义不带引号的常量?与perl qw一样,您在代码中犯了一个小错误:show用于输出变量。所以它的用法如下:

output["this is variable x:" ++ show(x)]
请注意,
\(x)
“++显示(x)+”

output
语句本身将以格式化字符串的形式打印给定数组。此格式化字符串可以按预期包含转义字符。因此,模型的正确输出语句为:

output ["\n\(states[j]) = \(colors[color[j]])" | j in indices];

您在代码中犯了一个小错误:show用于输出变量。所以它的用法如下:

output["this is variable x:" ++ show(x)]
请注意,
\(x)
“++显示(x)+”

output
语句本身将以格式化字符串的形式打印给定数组。此格式化字符串可以按预期包含转义字符。因此,模型的正确输出语句为:

output ["\n\(states[j]) = \(colors[color[j]])" | j in indices];