feat(journal): add list of topic for TAPL chapters

This commit is contained in:
2026-05-28 22:47:00 +02:00
parent 68175f71e4
commit d6f2d52387

View File

@@ -233,4 +233,67 @@
diagram,
caption: [TAPL chapters graph and reading status]
)
)
)
#pagebreak()
= Topics
#let topics = (
[Introduction],
[Mathematical Preliminaries],
[Untyped Arithmetic Expressions],
[An ML Implementation of Arithmetic Expressions],
[The Untyped Lambda-Calculus],
[Nameless Representation of Terms],
[An ML Implementation of the Lambda-Calculus],
[Typed Arithmetic Expressions],
[Simply Typed Lambda-Calculus],
[An ML Implementation of Simple Types],
[Simple Extensions],
[Normalization],
[References],
[Exceptions],
[Subtyping],
[Metatheory of Subtyping],
[An ML Implementation of Subtyping],
[Case Study: Imperative Objects],
[Case Study: Featherweight Java],
[Recursive Types],
[Metatheory of Recursive Types],
[Type Reconstruction],
[Universal Types],
[Existential Types],
[An ML Implementation of System F],
[Bounded Quantification],
[Case Study: Imperative Objects, Redux],
[Metatheory of Bounded Quantification],
[Type Operators and Kinding],
[Higher-Order Polymorphism],
[Higher-Order Subtyping],
[Case Study: Purely Functional Objects],
)
#{
show text: strong
show: align.with(center)
grid(
columns: 3,
align: (center, right, left).map(a => a + horizon),
column-gutter: 1em,
row-gutter: .6em,
..for (i, topic) in topics.enumerate(start: 1) {
let indicator = box(
width: 1.8em,
height: 1.2em,
radius: .2em,
fill: state-fills.at(
chapters.at(str(i))
.at("state", default: "unread")
),
stroke: black
)
(indicator, str(i), topic)
}.flatten()
)
}