caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] Ocaml-based web intro to functional programming
@ 2011-01-06 13:48 Jim Pryor
  0 siblings, 0 replies; only message in thread
From: Jim Pryor @ 2011-01-06 13:48 UTC (permalink / raw)
  To: caml-list; +Cc: Chris Barker, Ken Shan

Chris Barker (NYU Linguistics) and I (Jim Pryor, NYU Philosophy) just
finished teaching a grad seminar on "What Philosophers and Linguists Can
Learn From Theoretical Computer Science But Didn't Know To Ask". It was
basically an intro to functional programming oriented to our fields,
most of whose audience had done no programming before, but had some
background in formal semantics or philosophical logic.

They weren't there to learn programming, but to learn how reasoning
about types, effects, monads, continuations, and so on would be useful
to philosophers and linguists. We had to teach them how to program along
the way, so that they could understand what all those things were.

We moved back and forth between untyped lambda calculus, Scheme, a bit
of System F, OCaml, and a bit of Haskell. But when working in typed
languages, we primarily used OCaml.

We were very happy with how the seminar worked out, and it was a lot of
fun. Along the way, we developed a pretty substantial website, housed at
<http://lambda.jimpryor.net/>. We hope to continue developing and
refining this.

Some highlights of the website: a pretty good Javascript lambda reducer,
a hefty library of arithmetic and list operations in untyped lambda
calculus, a monad + monad transformer library in OCaml, a walk-through
of how to implement a classic paper from the dynamic semantics
literature using monads, an explanation of monads in category theory and
how that correlates with their use in functional programming, a bunch of
exposition and exercises, and lots of links.

At several places we had very useful input from Chung-chieh Shan,
Oleg Kiselyov, and Wren Thornton. (Some of their generous and useful
feedback has yet to be folded in.)

I'm posting this pointer to the website for two reasons: first of all,
we'd be very glad for feedback from others in the broader functional
programming community. (Our website is generated by ikiwiki, but it's
not in fact a wiki. However, we'd be glad to incorporate contributions.)

Second, and primarily, we hope the material there might be useful to
others learning these fundamentals. If you agree, you may want to point
them to it.

-- 
Jim Pryor
profjim@jimpryor.net

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2011-01-06 13:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-06 13:48 [Caml-list] Ocaml-based web intro to functional programming Jim Pryor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).