|
Subject: Re: Line spacing in Jade From: christo@xxxxxxxxxxxxxxxxxx (Frank Christoph) Date: Wed, 3 Sep 1997 10:18:41 +0900 |
A quasiquoted list `(...) evaluates to a list (if it terminates),
but in your example, `(make paragraph ....) is intended to be a procedure
call. To do it that way, you would need macros to reify the expression at
run-time.
Here's an alternative:
(define (scale-lines scale-factor)
`(font-size: (* (inherited-font-size) ,scale-factor)
line-spacing: (* (inherited-line-spacing) ,scale-factor)))
(element title
(apply make `(paragraph ,@(scale-lines 2) (process-children))))
> Chris Maden wrote:
> > (Really, what I should do
> > is write a function that always correlates font-size and
> > line-spacing...
> >
> > (define (scale-lines scale-factor)
> > font-size: (* (inherited-font-size) scale-factor)
> > line-spacing: (* (inherited-line-spacing) scale-factor))
> >
> > (element title (make paragraph
> > font-weight: 'bold
> > (scale-lines 2)))
> >
> > Hmm... except that doesn't work. Can a procedure give multiple
> > characteristic names and values?)
> >
>
> I think you need to use the quasi-quotation mechanism described in
> section
> 8.3.2.7 of the standard. I have tried to do this but without success:
>
> (element title
> `(make paragraph
> ,@(scale-lines)
> (process-children)))
>
> where (scale-lines) is defined as:
>
> (define (scale-lines)
> `(font-size: ,(* (inherited-font-size) 2)
> line-spacing: ,(* (inherited-line-spacing) 2))
>
> So, does anyone else have an idea of how to go about specifying
> characteristics in a (make ...) expression using a list instead of
> specifying each characteristic explicitly in the (make ...)?
DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: Line spacing in Jade, James Clark | Thread | Re: Line spacing in Jade, Frank Christoph |
| Re: Line spacing in Jade, Daniel Speck | Date | Re: Line spacing in Jade, Frank Christoph |
| Month |