Skip to content

Instantly share code, notes, and snippets.

@dyoo
Created March 2, 2013 07:06
Show Gist options
  • Select an option

  • Save dyoo/5070006 to your computer and use it in GitHub Desktop.

Select an option

Save dyoo/5070006 to your computer and use it in GitHub Desktop.
#lang racket/base
(define (post-title s)
`(h1 ,s))
(define (post-body . paragraphs)
`(div ((class "post-body"))
,@(filter (lambda (x) (not (string? x))) paragraphs)))
(define (paragraph p)
`(p ,p))
(define (blog-post . components)
(let* ((filtered-components (filter (lambda (x) (not (string? x))) components))
(title (car filtered-components))
(body (cadr filtered-components))
(comments (caddr filtered-components)))
`(div ((class "post"))
,title
,body
,comments)))
(define (link-target link)
link)
(define (link-anchor text target)
`(a ((href ,target)) ,text))
(define (list-of-items . items)
`(ul ,@(filter (lambda (x) (not (string? x))) items)))
(define (list-item i)
`(li ,i))
(define (comments . cs)
`())
(provide (all-defined-out)
(all-from-out racket/base))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment