108 lines
4.7 KiB
Racket
108 lines
4.7 KiB
Racket
#lang meta/web
|
|
|
|
(require "resources.rkt")
|
|
|
|
(define (make-all place person)
|
|
;; The first person in a place is the one responsible for it
|
|
(list
|
|
(place ; -------------------------------------------------------------------
|
|
'neu "Northeastern University"
|
|
#:location "Boston, MA"
|
|
#:url "http://www.ccs.neu.edu/racket/"
|
|
#:pubs "http://www.ccs.neu.edu/racket/pubs/"
|
|
(person 'matthias "Matthias Felleisen"
|
|
#:url "http://www.ccs.neu.edu/home/matthias/")
|
|
(person 'eli "Eli Barzilay"
|
|
#:url "http://barzilay.org/"))
|
|
(place ; -------------------------------------------------------------------
|
|
'utah "University of Utah"
|
|
#:location "Salt Lake City, UT"
|
|
#:url "http://www.cs.utah.edu/plt/"
|
|
#:pubs "http://www.cs.utah.edu/plt/publications/"
|
|
(person 'mflatt "Matthew Flatt"
|
|
#:url "http://www.cs.utah.edu/~mflatt/"))
|
|
(place ; -------------------------------------------------------------------
|
|
'nwu "Northwestern University"
|
|
#:location "Evanston, IL"
|
|
#:url "http://plt.eecs.northwestern.edu/"
|
|
#:pubs "http://www.eecs.northwestern.edu/~robby/pubs/"
|
|
(person 'robby "Robby Findler"
|
|
#:bibname "Robert Bruce Findler"
|
|
#:url "http://www.eecs.northwestern.edu/~robby/"))
|
|
(place ; -------------------------------------------------------------------
|
|
'brown "Brown University"
|
|
#:location "Providence, RI"
|
|
#:url "http://www.cs.brown.edu/research/plt/"
|
|
#:pubs "http://www.cs.brown.edu/~sk/Publications/Papers/"
|
|
(person 'shriram "Shriram Krishnamurthi"
|
|
#:url "http://www.cs.brown.edu/~sk/"))
|
|
(place ; -------------------------------------------------------------------
|
|
'byu "Brigham Young University"
|
|
#:location "Provo, UT"
|
|
#:url "http://faculty.cs.byu.edu/~jay/"
|
|
#:pubs "http://faculty.cs.byu.edu/~jay/home/#(part._pubs)"
|
|
(person 'jay "Jay McCarthy"
|
|
#:url "http://faculty.cs.byu.edu/~jay/"))
|
|
(place ; -------------------------------------------------------------------
|
|
'calpoly "California Polytechnic State University"
|
|
#:location "San Luis Obispo, CA"
|
|
#:url "http://users.csc.calpoly.edu/~clements/"
|
|
#:pubs "http://www.brinckerhoff.org/clements/papers/"
|
|
(person 'clements "John Clements"
|
|
#:url "http://users.csc.calpoly.edu/~clements/"))
|
|
(place ; -------------------------------------------------------------------
|
|
'wpi "Worcester Polytechnic Institute"
|
|
#:location "Worcester, MA"
|
|
#:url "http://web.cs.wpi.edu/~kfisler/"
|
|
(person 'kathi "Kathi Fisler"
|
|
#:url "http://web.cs.wpi.edu/~kfisler/"))))
|
|
|
|
;; ----------------------------------------------------------------------------
|
|
|
|
(struct person (nick name url bibname place) #:prefab)
|
|
(struct place (nick name location url pubs people) #:prefab)
|
|
|
|
(provide (struct-out place) all-places find-place
|
|
(struct-out person) all-people find-person)
|
|
|
|
(define-values (all-places find-place all-people find-person)
|
|
(let ()
|
|
(define places0
|
|
(make-all
|
|
;; make a place
|
|
(λ (nick name #:location loc #:url url #:pubs [pubs #f] . people)
|
|
(place nick name loc url pubs people))
|
|
;; make a person
|
|
(λ (nick name #:url url #:bibname [bibname name])
|
|
(person nick name url bibname (make-placeholder #f)))))
|
|
(for* ([place (in-list places0)]
|
|
[person (in-list (place-people place))])
|
|
(placeholder-set! (person-place person) place))
|
|
(define places (make-reader-graph places0))
|
|
(define people (append-map place-people places))
|
|
(when (ormap (λ (p) (null? (place-people p))) places)
|
|
(error 'places "all places should have people in them"))
|
|
(define (make-finder what xs get-nick)
|
|
(define t (make-hasheq))
|
|
(for ([x (in-list xs)])
|
|
(hash-update! t (get-nick x)
|
|
(λ (old) (if old (error what "got duplicate nicks") x))
|
|
#f))
|
|
(λ (nick) (or (hash-ref t nick #f)
|
|
(error what "nick not found: ~s" nick))))
|
|
(values places (make-finder 'places places place-nick)
|
|
people (make-finder 'people people person-nick))))
|
|
|
|
(provide people)
|
|
(define people
|
|
@page[#:part-of 'community]{
|
|
@p{“PLT” refers to the group that is the core of the Racket development
|
|
team. PLT consists of numerous people distributed across several
|
|
different universities in the USA:
|
|
@(ul (map (λ (p) @li{@a[href: (place-url p)]{
|
|
@(place-name p), @(place-location p)}})
|
|
all-places))}
|
|
@p{Also, Racket is supported by a band of volunteers who contribute not
|
|
only code and documentation but also infectious enthusiasm—too many to
|
|
name but whose help and encouragement make this fun and worthwhile.}})
|