Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (define fold
- (lambda xs
- (if (= (length xs) 2)
- (fold_h (car xs) (car (car (cdr xs))) (cdr (car (cdr xs))))
- (apply fold_h xs))))
- (define map-reduce
- (lambda (f b xs)
- (fold b (map f xs))))
- (define (key-value->string pair)
- (string-append
- (symbol->string (car pair))
- "=\""
- (car (cdr pair))
- "\" "))
- (define-syntax define-tag
- (syntax-rules ()
- ((_ tag)
- (define-syntax tag
- (syntax-rules ()
- (('tag ((KEY value) (... ...)) expr* (... ...))
- (string-append
- "<" (symbol->string 'tag) " "
- (map-reduce key-value->string string-append (list '(KEY value) (... ...)))
- ">\n"
- (string-append expr* (... ...))
- "</" (symbol->string 'tag) ">\n"
- ))
- (('tag expr* (... ...))
- (string-append
- "<" (symbol->string 'tag) ">\n"
- (string-append expr* (... ...))
- "</" (symbol->string 'tag) ">\n")))))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement