mailing-list for TeXmacs Users

Text archives Help


Re: [TeXmacs] macros, passing paramaters to with, and using includes


Chronological Thread 
  • From: Henri Lesourd <address@hidden>
  • To: Corey Sweeney <address@hidden>
  • Cc: address@hidden, address@hidden
  • Subject: Re: [TeXmacs] macros, passing paramaters to with, and using includes
  • Date: Fri, 10 Mar 2006 19:03:08 +0100

Corey Sweeney wrote:



On 3/8/06, Henri Lesourd <address@hidden <mailto:address@hidden>> wrote:

Corey Sweeney wrote:



But this one *still* doesn't work, due to f!@#$%g problems of
symbol encoding (for the symbol ">" in "tree->string"...), because
we want to write the Scheme code directly inside the TeXmacs <extern>
markup (the clean alternative solution would be to write a Scheme
plugin where we could safely write our Scheme functions. But then
we would have to deal with the current bug in the recently implemented
lazy evaluation of Scheme plugins ; I'm afraid that discussing this
would lead us even farther in designing hacks...).

Thus we need to trick it ; the following way works :
[[
<macro|inc0|<macro|x|<extern|(lambda (x) (tree-load-inclusion
((eval-string (string-append "tree-" (substring ">" 4 5)
"stree"))
x)))|<arg|x>>>
]]



Great idea. I had been adding "(define tree-to-stree tree->stree)" to my startup scheme libaries. Now I decided to one up you and abstract it:

(define horrible-scheme-hack-fun
(lambda (some-symbol)
(string->symbol
(list->string
(map (lambda (char)
(if (equal? char #\} )
#\>
char))
(string->list (symbol->string some-symbol)))))))

Of course, you'll probalby just one up me back and make it a macro :)

Wanna toss something like this in the texmacs scheme libraries? then we could change yoru code to:


[[
<macro|inc0|<macro|x|<extern|
(lambda (x) (tree-load-inclusion ((horrible-scheme-hack `tree-}stree) x)))|<arg|x>>>
]]

which would seem easier to read. The charactor could be something other then }, let's just make a "hacking standard" so everyone uses the same char till another solution presents it'self.

Yes, we need something like that if we want to be able to write
any Scheme function name containing '<' or '>' inside TeXmacs
macros. Another cleaner solution would be to define synonyms
for the offending functions, for example "tree2stree" as an
equivalent of "tree->stree", etc. in your .TeXmacs/progs/my-init-texmacs.scm,
but this solution is less general, then...




Archive powered by MHonArc 2.6.19.

Top of page