This rap is glorious. What's the story behind it -- was it a planned part of the lecture? -Kevin On Fri, Dec 4, 2015, at 10:57 PM, Nate Foster wrote: > I thought folks might enjoy hearing a new OCaml and Jane Street Async > themed song by MC FloCaml (also known as Jared Wong), as performed in > the final lecture of Michael Clarkson's CS 3110 class this semester at > Cornell. > > Enjoy, -N > > Video (by Neel Kapse): http://www.cs.cornell.edu/~jnfoster/flocaml.mp4 > > Music (by Jared Wong): https://soundcloud.com/rangersbeats/flocaml > > Lyrics: Take big steps to eval, like a nomad Bind and return like a > Monad Got you looking so mad about the signature I got you using in > the directory with the MLI files the compiler was choosing > > The type checks out, I’m feeling greater Defer the value now and I > return a little later Cuz I’m threaded, so for now I ain’t got much to > say I put a semicolon on to throw the unit away > > At this point, I only know what you know that we know I fill up the > Monad like it’s a burrito And I read it, I’m never defeated, bind and > retrieve it with anonymous functions, so that I’m never gonna leave > it behind > > And don’t worry, in case you haven’t heard I’m bout to Ivar.read it > and put it up in a deferred Or I could ref it and bang it for an > immutable copy And just a little later, you can call me A$YNC ROCKY > > Try to stop me, I wouldn’t care, I’d be ambivalent It’s the same game, > behavioral equivalence And I don’t even think that you was all that > Your scheduler was so lonely it couldn’t ever get a callback > > And really that’s the kind of thing that you couldn’t handle Because > my double semicolons got them screaming OH CAML Side effects, catch > them all, now you know we got ‘em All up in UTOP but I started on > the bottom > > So please take a second and just listen (listen) Up in your speakers > I’m wishin to write a weaker precondition Took a few small steps, I > was feeling like a dope Now I’m up in OCaml, we using lexical scope > > But once again I need to try to understand this, All these pedantic > antics tripping up my semantics I can stress, how much I really want > to do it all But once it’s said I can’t take it back it’s immutable > > And there was only one course plan Turning twenty-one, going on 3110 > But really, at this moment, I’m still living in terror Because the > type checker be giving me compile time errors > > The C A M L, with an O at the front It’s not imperative scaring ya, > and we ain’t tryna stunt Just tryna process every single type to keep > it in check And having higher-order fun with it is just a side effect