Я с этого лета играл с созданием игрушечного языка в Racket. Каждая форма имеет фиксированную арность и по умолчанию применяется так, чтобы скобки не нужны. например. +
имеет arity 2 так + 3 + 4 5
is (+ 3 (+ 4 5))
и + + 3 4 5
is (+ (+ 3 4) 5)
.Есть ли способ получить информацию о модуле во время чтения?
Для этого я храню в главном модуле символы и их смысл. Читателю все равно, если это специальная форма или процедура, но есть ли лучший способ сделать это, используя функции из рэкета? Таким образом, я могу импортировать метаданные модуля и запрашивать их во время разбора?
Hi. «Читателю все равно, если это ...», о чем идет речь «это»? Хранение метаданных часто выполняется в подмодуле (но я немного не уверен, где (и когда!) Вы хотите использовать метаинформацию. – soegaard
@soegaard символ в читателе, становится идентификатором в результирующем синтаксисе Если бы я должен был создать новый синтаксис для racket/base, могу ли я найти '' cons 'каким-то образом в racket/base, чтобы найти его arity? – Sylwester
Вы написали своего собственного читателя или повторно используете встроенный? – soegaard