Corey Sweeney wrote:



On 3/8/06, Henri Lesourd <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Corey Sweeney wrote:


    But this one *still* doesn't work, due to [EMAIL PROTECTED] 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...



_______________________________________________
Texmacs-dev mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/texmacs-dev

Reply via email to