Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: Nate Foster <jnfoster@cs.cornell.edu>
To: <caml-list@inria.fr>
Subject: [Caml-list] [humor] OCaml hip-hop song
Date: Fri, 4 Dec 2015 22:57:06 -0500	[thread overview]
Message-ID: <CADy+QO66-pzYNOB1LVYH2z_woF_cVEyqsL4LKkk2Mjy1Aqga0g@mail.gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 2505 bytes --]

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

[-- Attachment #2: Type: text/html, Size: 3165 bytes --]

             reply	other threads:[~2015-12-05  3:57 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-05  3:57 Nate Foster [this message]
2015-12-05  7:14 ` Kevin Chen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CADy+QO66-pzYNOB1LVYH2z_woF_cVEyqsL4LKkk2Mjy1Aqga0g@mail.gmail.com \
    --to=jnfoster@cs.cornell.edu \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox