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: Corey Sweeney
Subject: [Texmacs-dev] Re: [TeXmacs] macros, passing paramaters to with, and using includes
Date: Thu, 9 Mar 2006 17:07:28 -0600



On 3/8/06, Henri Lesourd <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.



I'll let ya know how it goes as soon as I can try out your files/macros.

Corey

--
((lambda (y) (y y)) (lambda (y) (y y)))
reply via email to

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