Subject: Re: DSSSL syntax From: Paul Prescod <papresco@xxxxxxxxxxxxxxxxxxxxxxxxx> Date: Mon, 19 May 1997 09:37:02 -0400 |
James Clark wrote: > One possible kind of alternative syntax is a C/C++/Java/CSS like one. > Another possible kind is an SGML/XML based one. That's true. How does an SGML/XML one scale? For instance when you switch to programming "mode" do you completely switch to Lisp/#!key syntax? > I think this stops being natural when you start trying to doing programming. > But for this, an alternative syntax seems less important to me: the fact > that you have to program in a functional way is a far bigger leap for a > C/C++/Java programmer than is the syntax. I think that functions provide a very nice abstraction mechanism even if you never try to do iteration/recursion. For example: (define *bf-size* ;; (these are from Richard Light's TEI-Lite stylesheet) (case *visual-acuity* (("normal") 10pt) (("presbyopic") 12pt) (("large-type") 24pt))) (define (INLIST?) (or (equal? (gi (parent (parent))) "LIST") (equal? (gi (parent (parent))) "LISTBIBL"))) (define (DISPLAYDIV align) (if (TOP-LEVEL-DIV?) (STANDARD-PAGE-SEQUENCE) (make display-group quadding: (case align (("LEFT") 'start) (("CENTER") 'center) (("RIGHT") 'end) (else 'justify)) (process-children-trim)))) I think that your average perl hacker could recognize and intuitively use an infix version of these without understanding functional programming. function displaydiv( align ){ if top-level-div?() then{ standard-page-sequence(); }else{ let quadding = switch( align ){ case "left": 'start; case "center": 'center; case "right": 'end; else 'justify}; make( display-group, quadding: quadding, process-children-trim() ); } } There are some "funny" things in there (to a Perl hacker), but they are actually generalizations of concepts generally available in procedural programming languages. For instance the "inline switch" is just an inline version of the familiar switch statement. I would hope that most Perl hackers would consider that actually a cool generalization of a familiar idea. So I think that there is some argument for an infix syntax for the programming parts (if we decide to keep them in DSSSL on the Web). Perhaps a variant of JavaScript syntax. It already has lexical scope and dynamic variables. Paul Prescod DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
SGML/XML syntax for DSSSL, James Clark | Thread | Re: SGML/XML syntax for DSSSL, Mitch C. Amiano |
Re: Heresy? Re: DSSSL WWW Enhanceme, Alex Milowski | Date | Re: SGML/XML syntax for DSSSL, Mitch C. Amiano |
Month |