In the empire of Functional stands the outpost of Lisp. Many pilgrims pass through Lisp every season, but few stay long. Something about Lisp’s proximity to certain uncharted regions, regions of which no sane Functional traveller dare speak, keep most from staying more than a day or two. And, for all their politeness, one can’t help but feel that the citizens of Lisp secretly detest outsiders and look down on their unclean syntaxes.
Lisp was established long before anyone in Functional can remember. Early histories chronicle amazing technological advancements and speak of Lisp’s great promises. But in more modern times, it has become a backwater, surpassed in population and ambition by most neighbors. Still, Lisp attracts a handful of new devotees every year, extremists drawn to its monastic styling and who still believe the promises of old.
Most had forgotten Lisp completely, when the rumors began to spread through Functional eleven years ago, rumors regarding a series of events that defied all pure explanation. I have yet to meet another soul willing to talk about the Crisis, as it came to be known in Lisp.
Oh, that I too could have remained among the ignorant, and that Lisp could have remained but a dot on the map. Yet, in light of uncomfortably similar events now occurring elsewhere, I feel that I must make some attempt to expose the facts behind the Crisis to the world, no matter the dreadful implications of my account. It may comfort you to believe that I was hallucinating, or caught up in some shared psychosis, and I hope to God that was the case, yet certain details make me doubt such simplified explanations more and more every day.
I arrived in Lisp the third week of the Crisis. A pilgrim fresh off the Haskellian Heights, what struck me first was the color of the village, or, more precisely, the lack thereof. Everything appeared muted, as if covered in a thick layer of greasy ash. The animals and citizens, even the structures, all had an unplaceable air of unhealthiness in their countenances. Pilgrims traveling in the opposite direction warned me to bypass Lisp, but only now that I saw the town did their warnings make sense. I never intended to linger, just long enough to rest and restock, and the gloom I encountered that first hour gave more haste to this desire.
I took a small room in the village’s only inn. As he took me to my room, the innkeeper’s eyes flitted about with a half-crazed quality, like some small and cornered game, and he was very insistent on two points: that I be back before dark and that I should, under no circumstances, open any window. Having heard only vague whisperings of the Crisis on my journey, I pressed the innkeeper as to the reason behind these rather extreme precautions. I confess that, at the time, I chalked most of these rumors up as insularism and backwardness, although I was struck by something dreadful in the oft repeated phrase, compiletime evaluation. It took a bit of work to get him talking, but he soon became eager to share the details with me.
The commotion started about three weeks ago, although few initially took notice, and had steadily escalated ever since. Travelers entering Lisp began to tell of distant chantings emanating from deep within the primeval Swamps of Imperative. Some spoke of a strange language, a functional language, but not one of Lisp. A language of curious angular parentheses and of cryptic incantations of struct, typedef, and typename with dark, forgotten meanings.
Most of Lisp dismissed such talk as delirious. True, many could remember childhood stories, passed down by Lisp’s oldest and wisest citizens, of what lurked in the Swamps of Imperative. Stories concerning that most terrible Cult of the Unnamable Letter and of their unspeakable rituals to the Demon God Clang. But these were fairy tales, nothing more. Such corruption of the pure syntax could never exist in the real world.
But even the most functional among them were disturbed by one traveler’s revelations, and most were visibly shaken by his talk of compiletime evaluation. Deep in the Swamps of Imperative, the pilgrim told of a primitive functionalism, bolted together from obscene imperativisms, and chanted by the Cult of the Unnameable Letter to the Demon God Clang. Chants and incarnations that altogether defied any healthy understanding of the functional world. And his ravings of a list, a compiletime list, were decried as heresy by the True Keepers of the Paren.
Even as these stories grew stranger and more numerous, most of Lisp strove to appear outwardly skeptical. But a subtile yet ungraspable fear filled the town. Strange nightly occurrences became common on its borders. The innkeeper informed me that, just that morning, a programmer on the edge of town awoke to find her parenthesis altogether corrupted beyond description. A few impressionable townspeople even swore that they could discern a curious trail leading from her REPL to the Swamp of Imperative.
Such colorful stories sparked my curiosity, and I resolved to see these strange parenthesis for myself. I had traveled most of the Land of Functional and found that many times, syntax that at first appeared cryptic later proved enlightening.
That I could have heeded the pilgrims’ warnings and bypassed that abominable town. To never even imagine such corruption’s of functionalism and syntax as I have seen, corruptions that drove me into eight years of madness, and even now leave me despairing the future.
The programmer lived on the edge of town, in a simple environment that abutted the rotting and stagnant waters of the Swamp of Imperative. The REPL where the parenthesis had been stored stood around one hundred yards from the swamp. It was already late afternoon when I arrived at her environment, but the dark clouds cut off all pretenses of day and drained the countryside of all remaining color.
Not a soul was out at this hour and I saw not a single glimmer of life in any environment I passed. Finally spotting the programmer’s environment, I wondered how anyone could ever program there. The two story structure looked to have been abandoned decades ago, with nature slowly pulling its hulking skeleton back into the decaying ground. I gave it a wide berth and headed back to the REPL.
The REPL was thirty yards behind the environment and, even from a distance, I could make out certain shapes on the ground before it. Shapes of an uncomfortable geometry that seemed at once strikingly familiar and completely alien. Closer examination was not reassuring. It was clear that these things had once been parenthesis, but their present shape was beyond all functional description. Once smooth bodies had been bent and deformed into crude angles. Venturing to touch one, I shook as I ran my hand along those two dreadfully straight lines on either side of that loathsomely acute angle. Just thinking of the force that could have distorted these parentheses so violently gave me a start, and I briskly started back to Lisp, much less dismissive of the innkeeper’s tales.
In the murk of the clouded dusk, I looked back one last time. I fancy I spied another distinct shape, also unplaceable but somehow familiar, arranged in the grass not twenty yards from the swamp’s edge. A sort of clump of four circles. And a strange matting of grass near the REPL, only now apparent in the filtered light of dusk, seemed to lead off uncomfortably in that direction.
I took a light supper that evening, of which even that I had hardly the stomach for more than a few mouthfuls. After the discovery of that morning, Lisp was in a state of self imposed curfew, and not a soul was brave enough to venture outside after dark. Even I, once so skeptical, could not have been bribed to do so.
A fellow traveller passing through Lisp sat down at my dinner table and started up a bit of conversation. Something about his eyes, not necessarily their color but something about the spectrum of light they emitted, immediately made me dislike him, although I was altogether too polite to dismiss him at once. The talk started innocently, with inquiries into my travels and destination. But soon he turned to the darker areas of programming. And when he brought up the Imperative, I suggested that we move to a more private table, as I noticed the barkeep nervously eying us.
He asked if I had ever heard of a certain language, a language in which words have special meanings and the higher orders were altogether impossible. I indicated that I had not. Barely above a whisper, he preceded to tell me of the sinister while loop and its odious companion do, of memory and pointers, and, in a voice barely audible even two feet away, of template, the implications of which were fully beyond my functional mind. What I heard that evening was so strange, so appalling, that I was tempted many times to walk away, but somehow could not bring myself to. Perhaps if I had not been to the REPL that afternoon, and seen those terrible parenthesis, I could have laughed the whole matter off as too much drink or a case of harmless insanity. But those eyes, and the seriousness in which the stranger spoke, made his talk feel like an awakening.
The stranger retired before me, but I was so distressed by our talk that I remained seated at the table in silent contemplation for another hour, my head swimming with blasphemous ideas of Imperative and of that ancient language, so horrific, that it was known by but a single unnameable letter. I finally retired to my room around midnight, hoping that a bit of rest would somehow quiet my nerves.
Instead, when I opened the door to my room, I found a thick volume resting on my bed. Even before glancing at its title, I knew what it was and who must have placed it there. The title would have been nonsensical just hours ago, before my talk with the stranger that evening. But the implication of that title, consisting of the singularly terrible letter C followed by two plus signs, made me faint with realization. The stranger had not been mad; this book’s mere existence gave credence to all he told me. When I came to myself, I was already on page one hundred and fifteen.
What I found in that book defies any civilized functional description. Even the vile Blue Book by the Half-Crazed Devotees of Object Orientation, which thirty years earlier destroyed many minds of Functional, seemed tame compared to the horrors this book contained in its later chapters.
I read of pointers and the intricate incantations required to please the odious Gods of Memory Management. Of builtin syntax to branch and loop. And of the dark power of template and its syntactical abominations. Even the authors seemed scared to more than hint at template’s relation to that most horrid phrase, compiletime evaluation.
Sometime in the predawn hours it all began to make sense. Even now I am afraid to share the full nature of my revelations with the blissfully naive public. For, what once had been but a faint suggestion in only the darkest corners of Functional now was thrown into hideous relief. For I realized that the C++ template system could be used as a functional language onto itself.
My mind swam with template and struct and typename. I saw how values in a meta-program could be encoded as types, and how such meta-values could be manipulated by meta-functions to perform meta-computations, not at runtime but at compiletime. Of how meta-functions were nothing but templates, and higher order meta-functions were nothing but templates within templates. And, in a terrifying self-realization, I found that this syntax, the accursed syntax I once found so abominable, now made complete sense. I no longer even remembered the one true syntax of Lisp.
And from the rotting Swamp of Imperative, the Cult of C++’s animalistic chants to their Demon God Clang grew audible, resounding louder and louder, until my room shook with their hellish recitation. Chants of unholy repetition and verbosity that still haunt my dreams on moonless nights.
And I too was chanting. Chanting and screaming one last prayer of devotion on that corrupt Alter of Syntax, a sacrifice to the Demon God Clang:
Nothing is beyond compiletime computation!
Nothing is beyond compiletime computation!
Nothing is beyond …
What follows I can only relate secondhand, for as much as I wrack my mind, the period of time from that night of hallucinatory revelation to my awakening in the Swamps of Imperative is fully lost to me. Perhaps this is for the best.
The people of Lisp, at least those who choose to remember, tell of a raving man who appeared mysteriously in the village the next day. He accosted a few people in town, but his speech was so verbose and garbled that none could understand him. But few argue that he made frequent allusion to that most terrible phrase, compiletime evaluation, and his hateful diatribes were filled with ominous prefixing of meta: meta-values, meta-functions, meta-programs, meta-programming, and meta-evaluation. The True Keepers of the Paren were summoned, and banished him from Lisp. A few would later recall that as this man was dragged away, his shouts of a compiletime list still haunt them to this day.
I next remember awakening half submerged in mire, tightly clutching that hellish volume. I knew immediately where I was, although I had not the courage to consciously admit this fact to myself.
My clothing hung in filthy tatters, no doubt from the thick brambles and thorn bushes surrounding every side of the small grotto in which I lay. I ventured that it was still mid-afternoon, although the stifling clouds overhead and the ceiling of decayed vegetation made even such imprecise guesswork futile. A sulfurous, rotting oder filled the air, and seemed to bubble up from the stagnate and dark water of the swamp around me. There was something altogether unpalatable in this oder, something that prevented one from ever getting used to it, even after many hours of exposure.
I heaved that evil book with all my force, and watched it quickly disappear about seven feet away into the black water. From my pockets I inventoried: two matches, a silken handkerchief of about one foot square and filled with berries – whose noxious oder made me quickly discard them – a waterlogged pocket watch, several coins totaling about 98 cents, and a small utility knife, of around four inches in length. Even if I had had a map, it would be altogether impossible to determine orientation. The light was diffuse and gloomy, with no indication of where the sun lay. I set off to my left, although the muck and thick overgrowth made progress difficult and slow.
I can’t say how long I wandered in that vile swamp as all human conception of time seemed to have been abandoned. The sky never changed and the light never grew darker or brighter. Several times I swore that I was recrossing my own path in that never ending spaghetti of brambles and thorns. My thirst grew almost overpowering, but the stench of that black water made any thought of taking a drink repugnant.
Finally, I stumbled into an opening of what seemed to be a corridor running off in either direction. The packed dirt trail was much welcome after my endless hours of waist deep wandering in that foul black water, and the overgrowth was arranged so as to form a hallway with almost solid walls. But the corridor was of such a vast dimension that I was hardly reassured that it was the product of Man. Nevertheless, the corridor seemed preferable to more wandering through the swamp.
Now the light inexplicably started to fade. I could not say if this was due to our planet’s normal quotidian revolutions or if the overgrowth making up the walls and ceiling of the tunnel was growing denser as I progressed. It soon grew so dark that I found it difficult to continue, so I broke off a curved stick, carefully struck one of my matches, and composed a primitive torch using my handkerchief. This accomplished its purpose, but only accentuated the darkness beyond the small circle of light.
Several times I fancied that I could discern hulking masses, of geometric configurations that distinguished them as hardly natural, lurking just off trail. A few came within mere feet of the trail’s edge. Cutting at the overgrowth to create a small opening, the arrangement of one structure was partially revealed to me. It stood at least twenty five feet tall, stretching who knows how far in the other dimensions. Two levels of cyclopean blocks, hewn from a black basalt, were stacked to form its vast walls. The blocks themselves were no less than fifteen feet high by thirty feet long, the bottom of the lower block being partially submerged. I saw that the face of the nearest blocks were overflowing with what appeared to be hieroglyphics and, with a sickening dread, I recognized those arcane and heinous symbols. They were cries for help by long dead philosophers and answers relating intricacies so esoteric, that they could be referred to only by a series of numbers. Weathering made the structure’s age clear, although it remained in remarkably good condition, and I did not like the apparent freshness of a few rather ominous scrawlings.
I have traveled Functional many times, yet have never seen anything comparable to these basalt structures and the unanswered pleas for help carved into them, and I hope never to see them again for as long as I live. Yet everyday, it seems that explorers report finding similar structures on all the major continents, even in the Antarctic where ancient Man surely never trod. Momentarily lost in thought, I began to become acutely aware of a sound, unmistakable in the stillness of that vile swamp. The sound of chanting.
To this day, I can not say why I did not turn around upon first hearing that debauched chanting, why I did not run the other direction back to safety. But my behavior was the opposite. I flew down the trail reinvigorated, the way growing clearer and the chanting growing louder, taking no notice of exhaustion or physical pain. Louder and louder the crescendo grew, until I could no longer even hear my own pantings and gasping for breath. Just as it seemed the chanting could grow no louder, it halted. The apprehension that filled that silence made it somehow even worse than those demonic chants.
I emerged into a clearing under a black sky. Not the blackness of rain or of night, but the blackness of nothing, of a void from which all light had been drained. A quarter mile off, and about three hundred and fifty feet above the ground, shone a single dim light atop one of those dreadful basalt structures. Even at my distance I could discern humanoid forms silhouetted against it, dancing and swaying offensively about the light. Silently, I crept closer and closer, hidden by the darkness, until I reached the base of that massive pyramid. Scaling those cyclopean steps would have been out of the question, had I not spotted a series of ropes to assist my climb. Still, ascending that great pyramid was challenging and I constantly feared that my struggles would be overheard.
Climbing ever higher, I became aware that the group above had not gone entirely silent, but even now was softly chanting, although only the oldest among them seemed to be doing so. I must have been three quarters of the way up, when they truly did fall silent. Time stopped. Then a blast of sickly bluish light nearly blinded me, followed instantaneously by a series of rapid pressure waves that burst both of my eardrums. When I cautiously opened my eyes, the entire countryside, as far as I could see in all directions, was bathed in an unhealthy, monotonic light. Oblivious to the blood running from both ears, I regained my footing and peered over the ledge above.
The reader may be excused for doubting what I am about to describe. I too have often tried to will doubt into my recollection of that night. For it is my undying wish that the citizens of Functional may forever live without glimpsing the horror that I saw summoned that night by the Cult of C++, deep in the Swamp of Imperative. My strength fails me even now, as I recall it and attempt to describe the indescribable. Indeed, all functional adjectives and allusions fail to capture more than its ghost.
For in the black sky above the pyramid, opened a nauseous aperture of light, brighter than the sun. And through that aperture reached two great tentacles, not under fifty feet long each, and growing two or more yards longer every second. Below that unearthly aperture, those demon worshippers of the Cult of C++ continued their blasphemous dancing and chanting in a frenzy, the two tentacles slowly writhing back and forth and bending parallel to each other in the sky.
It took me several seconds to realize that I was screaming in horror at the top of my lungs, for my mind’s only defense against such incomparable terror of realization was to fully separate itself from all bodily sensation. Perhaps sensing my primal screams of terror, whatever cephalopedic horror those tentacles belonged to, a force feared even by the Demon God Clang, rapidly altered its behavior. With one terrible motion, a tentacle swept the top of the pyramid, grasping several devotees and brushing the rest off, their bodies crashing around me and thudding sickeningly off lower levels of the pyramid’s cyclopean blocks.
The other tentacle began to reach in my direction. It could not have been more than thirty feet above me when sensation finally returned. Taking no heed of falling, I leapt from those great blocks, rappelling with those course ropes so swiftly that I am surprise I did not break my legs. And doctors tell me that when they recovered my unconscious body on the outskirts of Lisp, both hands were so covered in burns and so deeply infected, that they were certain amputation would be the only option.
But pain did not slow my descent, for I did not even have the courage to check if I was being pursued. Not more than twenty feet from the ground, again came that horrible flash of light, followed by another series of even more violent pressure waves that threw me off the ledge. The last thing I remember is seeing the ground, no longer bathed in that unearthly light but now a comforting black, rushing up towards me.
It has been eleven years since the end of the Crisis. Doctors tell me that I was catatonic the first two years afterwards, and it took another four before anyone could bring me back from ravings of struct, template, and typename, or quell my frenetic scribbling of the curious angular parenthesis and the revolting quadruple dots. Slowly, they brought me back to the good Functionalism. Even after I was released eight years ago, I have steadfastly stuck to the truth of what happened in Lisp, much to my family’s distress, although they seldom ventured to ask any details of that night. I would have been content to take these memories to my grave, if I had not come across recent articles that describe distressingly similar circumstances.
Despite years of study and consultation with the most well regarded Functional academics, I cannot say definitively what the Cult of C++ attempted to summon that night, or what would have happened if that thing had made it to our side. But every new revelation points in one distressing direction. A direction first described by the stranger in Lisp and recounted to me by the innkeeper. Of a functional language, stitched together from the most obscene imperative techniques, and run at compiletime! And I know that they will try to summon this monstrosity again.