
necessary modules are now "all.rkt"s; "shard.rkt"s turn to "resources.rkt". Also, "navbar.rkt" changes to "all.rkt", since it was doing the same thing (in addition to setting the navbar).
119 lines
5.1 KiB
Racket
119 lines
5.1 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
|
|
(lambda (nick name #:location loc #:url url #:pubs [pubs #f] . people)
|
|
(place nick name loc url pubs people))
|
|
;; make a person
|
|
(lambda (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 (lambda (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)
|
|
(lambda (old)
|
|
(if old (error what "got duplicate nicks") x))
|
|
#f))
|
|
(lambda (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 (lambda (p)
|
|
@li{@a[href: (place-url p)]{
|
|
@(place-name p), @(place-location p)}})
|
|
all-places))}
|
|
@h4{Affiliates}
|
|
@p{We work with
|
|
@ul*{@~ The crew at @a[href: "http://untyped.com"]{Untyped}
|
|
@~ Dorai Sitaram, GTE Labs
|
|
@~ Mike Sperber, Universität Tübingen}
|
|
In particular, please check out the Racket-related work being done at
|
|
@|-schematics|.}
|
|
@h4{And ...}
|
|
@p{Finally, Racket is supported by an 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.}})
|