Created
December 5, 2015 17:05
-
-
Save yminsky/1645d897bc9128ed4450 to your computer and use it in GitHub Desktop.
Lyrics for OCaml/Async rap
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment