[plt-scheme] Can I abuse with quasi...quotes?

From: Paulo J. Matos (pocm at soton.ac.uk)
Date: Wed Jul 18 18:21:25 EDT 2007

Hi all,

I've been working a lot with propositional logic formulas where the
operator is prefixed, like:
'(and x1 (or x2 x3) (<=> x4 (not x1)))

Now, to build formulas I'm using quasiquote and sometimes even abusing it.
For example, given two list of variables of equal length. I do the
following to create an assertion of equivalence between them:
`(and ,@(map (lambda (var1 var2) `(<=> ,var1 ,var2)) varlst1 varlst2))

I don't really understand what happens inside with ,@ and , but I keep
wondering if this is better:
(cons 'and (map (lambda (var1 var2) (list '<=> var1 var2)) varlst1 varlst2))

I don't know if it matter but for the record, I don't use list
mutation, so is this better than the first form?
Is there a better form?

Cheers,

-- 
Paulo Jorge Matos - pocm at soton.ac.uk
http://www.personal.soton.ac.uk/pocm
PhD Student @ ECS
University of Southampton, UK


Posted on the users mailing list.