Skip to content
#lang for agile software development
Racket Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lang
scribblings
.gitignore
LICENSE.txt
README.md
info.rkt
main.rkt

README.md

#lang agile

Finally, the language for agile software development.

Agile programs start with #lang agile. The rest is up to you.

    #lang agile

    (begin-for-syntax (define-syntax-class principle
      #:attributes (message)
      (pattern (word*:id ...)
       #:attr message #'(word* ...))))

    (define-syntax make-manifesto
      (syntax-parser
       [(_ p*:principle ...)
        #:with (i* ...)
          (for/list ([p (in-list (syntax-e #'(p* ...)))]
                     [i (in-naturals 1)])
            i)
        #'(lambda (n)
            (case n
             [(i*) 'p*.message]
             ...
             [else '(Responding to change over following a plan)]))]))

    (define agile
      (make-manifesto
       [satisfy the customer]
       [welcome changing requirements]
       [deliver working software]
       [work together daily]
       [support and trust]
       [face-to-face conversation]
       [working software is the primary measure of progress]
       [sustainable development]
       [attention to excellence]
       [simplicity is essential]
       [self-organizing teams]
       [reflect tune adjust]))

    (agile 12)
    ;; '(reflect tune adjust)
You can’t perform that action at this time.