У меня есть функция, которая возвращает равенства, которые я хочу напечатать, например, x==y или 2x+5==10. Обычно это не имеет значения для математики, она не может ее еще больше упростить.
Однако иногда обе стороны равны, но я хочу иметь возможность печатать равенство в невычисленном виде: то есть я хочу, чтобы Mathematica печатала x==x, а не True.
Очень простой пример:
Print[printableEqual[x,y]]
должен печатать x==y, а
Print[printableEqual[x,x]]
должен напечатать x==x
Изменить: причина в том, что у меня есть связь между графиками. Я хотел бы вернуть такие вещи, как
G1 == t*G2 + s*G3
где t,s — целые числа, а Gi — графические объекты в системе Mathematica. Простое возвращение этого отлично работает (поскольку Mathematica не может упростить такие вещи), ЗА ИСКЛЮЧЕНИЕМ G1 == G1, которое будет True.
Проблема в том, что использование Defer или HoldForm дает
Private`lhs$714 == Private`rhs$714
в качестве вывода, то есть частные переменные в моем пакете не оцениваются как моя графика.
printableEqual[x_,y_]:=Row[{x," \\[LongEqual] ",y}]
? - person Simon   schedule 01.02.2011