Boring Chef

From Esolang
Jump to navigation Jump to search

Boring Chef is a stack-based language where programs don't look like cooking recipes. Boring Chef was "designed" by user:GluonVelvet in 2025. It resembles Chef but with no cooking themes, a python like syntax, and some added quirks to it that make it slightly different.

Design Principal

Programs should only generate valid output, not be easy to prepare and delicious.

Hello, world! in Boring Chef

 
# hello world!
 
function HelloWorld{
  variables{
    int h = 72
    int e = 101
    int l = 108
    int o = 111
    int space = 32
    int w = 119
    int r = 114
    int d = 100
    int other = 33
    stack hi
  }
 
  methods{
    place other on hi
    place d on hi
    place l on hi
    place r on hi
    place o on hi
    place w on hi
    place space on hi
    place o on hi
    place l on hi
    place l on hi
    place e on hi
    place h on hi
    characterize hi
    place hi in output
 
    output(1)
  }
}

Operations

Below is a list of operations and commands in Boring Chef, each doing mostly the same thing that their Chef counterpart does

Comments: the same as python, using # and any following text on the line will make a comment

# this is a comment!

function: Defines the start of a function which can produce output and do methods and contain variables and include the operations of other functions

function example{
  variables{
    char thisGuy = w
  }

  method{
    include otherGuy
  }
}

variables: creates variables in the defined curly braces

int: an integer value

char: a number with an ascii value

flex: a variable that can be either of the aforementioned 2 types

stack: a stack that starts out with nothing. You can not assign things to the stack until you have entered the method.

variables{
  int eger = 15
  char acter = e
  stack ing
  flex ible = eger
  flex ing = acter
  flex okImDoneWithThisGimmick = d
}

method: creates the program method in the defined curly braces

method{
  place test on ground
  characterize ground
}

input: asks for user input and assigns it to the variable in the brackets

input(example)

place: places a variable or stack inside of something like a stack or output

place e on motions
place motions in output

pop: removes the top value from the selected stack and stores it in the variable in the brackets

# example is the stack and variable is the variable
example pop(variable)

add: adds the value of a variable to the top value on the selected stack

add t to temp

subtract: subtracts the value of a variable from the top value on the selected stack

subtract t to temp

multiply: multiplies the value of a variable with the top value on the selected stack

multiply t to temp

divide: divides the value of a variable from the top value on the selected stack

divide t to temp

combineInts: adds the values of all the integers on a stack together and places the result on the stack in the brackets

silly combineInts(silly)
silly combineInts(slurry)

characterize: turns the selected variable or the selected stack into chars

characterize slurry

bury: moves the top value on the selected stack down by a number or until it reaches the bottom, can also take ints as an argument

gluon bury(999)
gluon bury(velvet)

shuffle: randomizes the positions of the values on the selected stack

shuffle cards

clear: clears the selected stack of its values

clear mind

loop: creates a loop with a variable as a condition which terminates once the variable reaches 0. The loop will automatically decrement the variable for each loop. The loop executes the instructions in the provided curly braces until it ends.

loop f{
  place f on respects
}

break: breaks a loop

loop window{
  place window on wall
  break
}

include: include another function and its method into the method, where the method only continues once the included function’s method finishes

include cease
place hammerTime on outdatedJoke

stop: stops the ongoing method, if a function is included and running it will stop that function, if a number is specified it will print the output corresponding to the number assigned to the output

# this will output drive and road 
place car on drive
place car on road
stop(1)

output: outputs the contents contained in output a number of times specified in the brackets

# outputs once
output(1)
# outputs the same thing 3 times
output(3)

External Resources

Google doc with more code examples