texmacs-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Texmacs-dev] Re: [TeXmacs] macros, passing paramaters to with, and usin


From: Henri Lesourd
Subject: [Texmacs-dev] Re: [TeXmacs] macros, passing paramaters to with, and using includes
Date: Fri, 10 Mar 2006 19:03:08 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.2) Gecko/20030208 Netscape/7.02

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 address@hidden 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...





reply via email to

[Prev in Thread] Current Thread [Next in Thread]