# Gofe

Jump to navigation
Jump to search

Gofe is a golfing language. It is invented by User:None1, but anyone who would like to cobtribute can contribute it.

## Data Storage

It has a stack, queue, tape and deque and a register, they contain floating point values of any size.

## Commands

+ - < > the same as brainfuck , input register as decimal ? input register as character ! output register as character . output register as decimal [CODE] while the register is not zero, do CODE. (CODE) while the register is zero, do CODE. {CODE} do CODE forever. $(CODE1)(CODE2) if the register is not 0, do CODE1, otherwise CODE2. $[CODE] if the register is not zero, do CODE. ${CODE} if the register is zero, do CODE. s d D t q Stands for the stack top, deque front, deque back, tape pointer and queue front respectively. &<data structure> Push the register value to the corresponding data structure (for the tape, set pointer value instead of push). #<data structure> Pop the register value from the corresponding data structure (for the tape, set register instead of pop). @<data structure> Pop from the corresponding data structure (for the tape, set register instead of pop) and discard it. ;<data structure> Set the register value to the corresponding data structure, but do not discard it. A<data structure> Add the register value by the corresponding data structure. S<data structure> Subtract the register value by the corresponding data structure. M<data structure> Multiply the register value by the corresponding data structure. G<data structure> Divide the register value by the corresponding data structure. P<data structure> Power the register value by the corresponding data structure. Q<data structure> Mod the register value by the corresponding data structure. L Set the register value to log(10, register value). R Set the register to a random value within [0,1). F Set the register to integer part of it. "<string>" Output <string> '<string>' Output <string> and a line feed. /x/ set register to x. 0-9 set register to corresponding one digit number.

EOF returns 0 in all input.

## Examples

### Hello World

"Hello World!"

### Cat Program

{?!}

#### Alternative that terminates on EOF

![?!]

### A+B Problem

,&s,As.

### 99 bottles of beer

+/99/[.St"bottle"${"s"}" of beer on the wall, "At.St"bottle"${"s"}' of beer.'"Take one down and pass it around, "$(.St"bottle"${"s"}At)("no bottles")' of beer on the wall.''']'No bottles of beer on the wall, no bottles of beer''Go to the store and buy some more, 99 bottles of beer on the wall.'

### Infinite counter

{+.''}

### Powers of 2

++1{.''Mt}

### Fibonacci

>+<{#t.>At>&t<}

This program exausts infinite memory over time.

### Truth Machine

,.[.]

### Dice

6&sRMs+FAt.

### Factorial

,&t1&s[#sMt-&s#t].

### Project Euler problem 16

/1000/&t/10/&q/2/Pt[&sQq>At<#sGqF]>#t.

## Implementation

Though it is a golfing language, it is currently unimplemented. If you have an implementation, you can put it here.