We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

Gulf of Mexico

From Esolang
Jump to navigation Jump to search
This article is not detailed enough and needs to be expanded. Please help us by adding some more information.

Gulf of Mexico (formerly DreamBerd) is a joke programming language that may also be described as esoteric. It was created in 2022 by Lu Wilson (TodePond) to be the best programming language is and currently being maintained by over 170 contributors as of 14 October 2026.

Reserved words

In Gulf of Mexico, reserved words can be deleted with the delete keyword. For example:

delete var!
var var mutable_variable = "mutable"! // error

In fact, delete can also delete primitives such as Booleans, numbers, and strings.

delete "Hello, world!"!
print("Hello, world!")! // error

Variables

Variables can be defined as such:

const const my_var = 1!
const var my_var = 2!
var const my_var = 3!
var var my_var = 4!
const const const my_var = 5!

Constant constants cannot be re-assigned nor modified.

Constant variables can be edited but cannot be re-assigned.

Variable constants can be re-assigned but cannot be edited.

Variable variables can be re-assigned and edited.

Constant constant constants cannot be re-assigned nor edited and are immutable.

Overloading

Variables can be overloaded by declaring them multiple times in the same scope, with the most recent overload or the overload with the most exclamation marks being used. Inverted exclamation marks (¡) can be used to give negative priority.

const const esolang = "LOLCODE"!
const const esolang = "Befunge"!
const const esolang = "C++"¡
print(esolang)! // Befunge

Semantic naming

Variables support semantic naming or Hungarian notation, where the type of the variable is determined by the prefix of its name. Prefixing a variable name with g_ also makes it a global variable.

Lifetimes

Variables are automatically managed by the garbage collector, however manual lifetimes can be specified in either lines or units of time. For example, const const my_var<5> = 3! declares my_var to have a lifetime of 5 lines after its declaration and const const other_var<10s> = 3! defines other_var to have a lifetime of 10 seconds.

Negative lifetimes can be specified which has the effect of hoisting the variable up.

Variables can also be specified to live forever by using Infinity as the lifetime.

Functions

Functions can be defined with any letters from the function keyword as long as they are in order, so the following lines are all valid:

function do_something() => 3!
functio do_another_thing(x) => x * 3!
fun get_better_examples() => "No."!
f these_names_suck() => maybe!
fnto stop() => false!

AI

AEMI (Automatic Exclamation Mark Insertion) automatically inserts semicolons at the ends of statements which do not end in exclamation marks.

ABI (Automatic Bracket Insertion) automatically closes unclosed parentheses and brackets.

AQMI (Automatic Quotation Mark Insertion) automatically inserts quotation marks where they are needed, for example in unterminated strings.

SI (Super Insertion; formerly AI for Automatic Insertion) completes unfinished code.

These features do not use AI; instead they automatically email unfinished code to Lu Wilson who will respond with the completed code as soon as possible.

DBX

DBX allows embedding HTML in Gulf of Mexico programs. Since class and className are both reserved words in Gulf of Mexico, htmlClassName must be used for the class attribute instead.

funct StaticSiteGenerator() => {
    return <html><head><title>My cool static site!</title></head><body><h1>Level 1</h1><br /><h2>Level 2</h2><br /><h3>Level 3</h3><br /><h4>Level 4</h4><br /><h5>Level 5</h5><br /><h6>Level 6</h6><br /><p>Hello, world!</p></body></html>
}

Examples

"Hello, world!" program

print("Hello, world!

External resources