마지막 인쇄가 있습니다메타폰트북(8판, C권). 그 인쇄 이후(따라서 다른 모든 인쇄 이후에도) 두 가지 매우 흥미로운 수정 사항이 나타났습니다.정오표:
1)
이 수정에 관한 질문:
ㅏ접미사는 빈 집합이거나 임의 개수의 <tag>
s 또는 <subscript>
s의 조합입니다(54페이지의 구문 규칙 참조). 따라서 a는 <subscript>
다음의 부분집합입니다.접미사. 그러므로 왜 그런 말을 했는지는 분명하지 않습니다.
접미사 또는 아래첨자
마치 그것들이 별개의 재산인 것처럼.
2)
여기에 다음의 정의를 넣을 가치가 있습니다 <suffix list>
.
<suffix list> -> <suffix> | <suffix list>,<suffix>
이 수정에 관한 질문:
이 사건에 대한 구체적이고 구체적인 예는 무엇입니까?
답변1
"suffixed"은(는) 무슨 뜻인가요? 일반적으로 "접미사가 있는 변수"와 같은 것을 말합니다. 그러나 a는 구문 규칙에 따를 suffix
수도 있으므로 이는 다음을 의미합니다.empty
모든변수가 붙습니다. 그러므로 이 suffix
규칙은 "접미사"에 대한 최선의 참조가 아닙니다. 그래서 우리는 "접미사"라는 직관적인 의미를 사용해야 합니다. 이제 와 같은 변수가 x.a
나타나고 x[2]
때로는 다르게 동작합니다. 예를 들어 x.a
완전히 x.b
다르지만 x[1]
과 x[2]
훨씬 더 연결되어 있습니다. 특히 댓글 뒤에는
하지만 'x.k'는 동일하지 않습니다. 이는 변수 k의 값이 첨자된 태그 'x'가 아니라 'k' 태그가 접미사로 붙은 태그 'x'입니다.
독자는 x[k]
"접미사"가 붙지 않았다고 가정할 수 있습니다. 따라서 "접미사"만으로도 충분하지만 어떤 경우에는 오해를 불러일으킬 수 있으므로 "또는 아래첨자"만 추가하는 것이 더 쉽습니다.
접미사 목록 문제의 예는 다음과 같습니다.
newinternal x;
forsuffixes s = x1: show s; endfor
end;
x
접미사를 붙일 수 없으므로 실패하므로 x1
유효하지 않습니다. 따라서 x
는 an 이므로 internal quantity
a 는 variable
a 가 아닙니다. 그렇지 않으면 접미사가 되어 a 에서 허용되기 suffix
때문 입니다 .x1
suffix list
suffix list
내 생각에 여기서 문제는 이것이 정의 보다는 문제인 것 같다는 것입니다 suffix
: 내부 변수가 접미사가 아니라고 가정하면,
newinternal x;
y.x1 = 1;
end;
작동하지 않아야 하지만 이는 Metafont에서 허용됩니다.
따라서 더 정확한 규칙은 다음과 같습니다. 내부 수량~이다a 접미사 및 연습 7.4는 참이지만 a suffix list
는
<external suffix> -> <empty> | <subscript><suffix> | <external tag><suffix>
<suffix list> -> <external suffix> | <suffix list>,<external suffix>
답변2
이것은 허용되는 답변에 대한 작은 추가 사항입니다. 내 이해를 요약한 것입니다.
수정 1):
"또는 첨자"라는 문구는 "접미사"의 "직관적" 의미에 첨자 변수를 추가하기 위해 존재합니다.
문제는 MetaFontBook에서 "접미사"라는 단어에는 "일반"(p.54의 구문 규칙)과 "직관적"(아래 첨자 외에 비어 있지 않은 것)이라는 두 가지 의미가 있다는 것입니다.
수정 2):
다음 예는 x<tag>
및 x<subscript>
작동하지 않습니다.
newinternal x;
forsuffixes s = x.k: show s; endfor
end
newinternal x;
forsuffixes s = x[1]: show s; endfor
end
다음 예제는 x<tag>
및 x<subscript>
작업을 수행합니다.
newinternal x;
y.x.k = 1;
end
newinternal x;
y.x[1] = 1;
end
따라서 두 번째 수정은 허용된 답변에서 말한 대로 수정되어야 할 뿐만 아니라 " x<subscript>
"에 " "을 추가하는 것까지 수정되어야 합니다 x<tag>
.