Open rrose1 opened 9 years ago
You're right to suggest that there could be lessons on the matter of 'write' and various issues in program development. Probably I should do this.
I don't mind changing 'vernacular' to 'template' in our work. If what we have is a 'template', let's call it that. When I thought of the name 'vernacular' at the board the other day, I was remembering an old quote from someone, I forget who, to the effect that traditional mathematical logic was done in too 'sanctified' (or maybe too 'sanctimonious') a style. This was in a book on recursion theory (coincidentally); the person went on to say that for them, recursion theory was 'profane': it was just another branch of mathematics. There was no need to develop it in the minimalistic, pedantic style more common in logic. So what I was thinking of was something like this point. If 'template' is better, let's just switch.
The goal of vernacular as a language reminds me of that of so-called template languages for dynamically generated web pages ("template" here doesn't specify a property of the language as such, but of an application or technology).
Vernacular code could be thought of as a 1# code template. I think it would easy for the user to distinguish between templates and 1# code; and would encourage her not to think of the template (vernacular) code as the real thing. "Template" also evokes the nature of the limited copying and pasting automation that vernacular is intended to provide.
Another way to think about vernacular (aside from goto, label and alphanumeric string abbreviations of 1# code) is as extending 1# with a quasiquoting facility. Suppose that you were able to quote portions of 1# code and that quoted code evaluated to the literal contents of the quotation. In particular, evaluating a quoted portion of 1# code
s
twice would yield the evaluation ofs
. Then the semantics of vernacular'seval
could be viewed as escaping quotation.In Racket Scheme: `(+ ,(+ 1 2) 3) evaluates to '(+ 3 3), which evaluates to 6.
cf.
unquote
in http://docs.racket-lang.org/reference/quasiquote.htmlI think this is also interesting for an interface, since operationally quoting is a lot like
write
in 1# and there could be lessons centered on these connections.