Re: [racket-users] LaTeX
Hendrik, hello. (a tangent...) On 27 Aug 2019, at 14:16, Hendrik Boom wrote: > That said, it doesn't even have a stable syntax. I tried to find a > grammar for parsing LaTeX, and discovered there is none. It seems > LaTeX's macros do the parsing, and they're a Turing-complete > laanguage. Oh yes. LaTeX is fun. TeX has a _small_ set of very primitive commands -- loosely like add-character-to-list or add-box-to-list-of-boxes, none of which a normal user would type or be aware of -- and all of the rest is macro expansion. LaTeX is just a package of macros, originally written by Leslie Lamport, sitting on top of (the package of macros that is) plain TeX. The tokeniser turns "\emph {x$y$}" into at which point "emph" is looked up to see if it's a macro. "emph" is, and requires an argument, so the tokeniser then gobbles this is replaced by the expansion of "emph"+arguments, which is then expanded, and so on until something expands to one or more primitives. Thus what syntax there is is entirely specified by the definitions of the macros. Even the tokeniser is reconfigurable on the fly, so that the following is a valid LaTeX file: \documentclass{article} \catcode`@=0 @catcode`<=1 @catcode`>=2 @catcode`;=14 @catcode`\%=11 ; % is now just an ordinary alphabetic-letter @begin Hello, this is a 100% valid @LaTeX@ file. @end Although mathematical expressions > (which Latex is all about) have tree structure (like MathML does, and > is excessively wordy), for the most part latex represents mathematics > as just a symbol cluster. TeX doesn't represent any of the structure of the mathematics, because it's focused purely on the typesetting of maths (and other text). Semantics, as far as TeX is concerned, is for human readers. Thus in $\sum_i x_i$, the fact that \sum is a summation is not important; what's important is that it's in a category of objects for which certain spacing and layout rules apply, and these are managed/implemented/realised by the internals of TeX -- the primitives -- not by any macros. Best wishes, Norman -- Norman Gray : https://nxg.me.uk SUPA School of Physics and Astronomy, University of Glasgow, UK -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/C703278D-3C0C-4305-8904-4DBC2379D105%40glasgow.ac.uk.
[racket-users] LaTeX
On Mon, Aug 26, 2019 at 02:50:06PM -0700, Ilnar Selimcan wrote: ... > > Arithmetic expressions can be included in s-expression code by simply > wrapping them with $ signs, like in Latex. ''' LaTeX ... interesting. It is a pure notation without semantics. That is, it is a notation whose semantics *is* notation. Although mathematical expressions (which Latex is all about) have tree structure (like MathML does, and is excessively wordy), for the most part latex represents mathematics as just a symbol cluster. It does have some nesting, indicated by special brackets, for when the layout itself needs two-dimensions. That said, it doesn't even have a stable syntax. I tried to find a grammar for parsing LaTeX, and discovered there is none. It seems LaTeX's macros do the parsing, and they're a Turing-complete laanguage. It makes me appreciate Scribble. -- hendrik -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/20190827131628.i543jc5bhbhpdhzr%40topoi.pooq.com.
Re: [racket-users] LaTeX inspired key bindings
On Thu, 28 Jan 2016 16:30:57 -0600, Brian Adkins wrote: > > I'm sure this is a really bad idea, but I couldn't resist after finding > section 3.3.8 in the Dr. Racket documentation - what fun :) > > (define (∃ member list) > (cond [ (∅? list) ∅ ] > [ (≡ member (α list)) list ] > [ else (∃ member (ω list)) ])) > > (∃ 8 '(3 9 8 5)) > > Using "alpha" for "car" kind of makes sense, but using "omega" for > "cdr" really doesn't - I expect it should return the last element of > the list, but I couldn't think of any greek symbol that might mean > "tail". Δ ? (also works with a:car :: d:cdr :) ) Vincent -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[racket-users] LaTeX inspired key bindings
I'm sure this is a really bad idea, but I couldn't resist after finding section 3.3.8 in the Dr. Racket documentation - what fun :) (define (∃ member list) (cond [ (∅? list) ∅ ] [ (≡ member (α list)) list ] [ else (∃ member (ω list)) ])) (∃ 8 '(3 9 8 5)) Using "alpha" for "car" kind of makes sense, but using "omega" for "cdr" really doesn't - I expect it should return the last element of the list, but I couldn't think of any greek symbol that might mean "tail". I have been using Command-\ to insert λ instead of lambda. It's too pretty to resist. Brian -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.