Полная последовательность с
(1)
. di 54,321
54 321
(2)
. di "54,231"
54,321
display
интерпретирует (1) в качестве инструкции для отображения два аргумента, один за другим. Вы получаете тот же результат с последней строкой, что и (сначала), локальный макрос test
был оценен и (второй) display
увидел результат оценки.
Разница, в которой указаны кавычки, заключается в том, что вы настаиваете на том, что аргумент является литеральной строкой. Вы получаете тот же результат с вашей первой командой display
по тем же причинам, что и только что приведенные.
Вкратце, использование локальных макросов здесь совершенно случайно в отношении различий в результатах. display
никогда не видит локальный макрос как таковой; он просто видит свое содержимое после оценки. Итак, то, что вы видите, полностью сводится к нюансам в том, что представлено display
.
Обратите внимание, что, хотя вы можете использовать формат отображения при определении содержимого локального макроса, это заканчивает эту историю. Локальный не имеет прикрепленного формата, который придерживается его. Это просто строка (которая, естественно, может означать строку с числовыми символами).
Спасибо, Ник - полезные комментарии; теперь все ясно. – radek