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.