Prefunge is a Befunge derivative by User:BoundedBeans.

Syntax[edit]

Prefunge is identical to Befunge, but now the C preprocessor is run on it. Additionally, the following restrictions are placed:

Variations[edit]

There are a few flavors of Prefunge:

Examples[edit]

Hello, world![edit]

#define AAAA __TIME__ $$$$$$$$"!dlrow ,olleH"zzzzzzz
#define AAAB @ __TIME__ $$$$$$$$ __TIME__ $$$$$$$$
#define AABA > __TIME__ $$$$$$$$ __TIME__ $$$$$$$$
#define AABB : __TIME__ $$$$$$$$ __TIME__ $$$$$$$$
#define ABAA v __TIME__ $$$$$$$$ __TIME__ $$$$$$$$
#define ABAB _ __TIME__ $$$$$$$$ __TIME__ $$$$$$$$
#define ABBA , $$$$$$$$ __TIME__ $$$$$$$$ __TIME__
#define ABBB ^ $$$$$$$$ __TIME__ $$$$$$$$ __TIME__
AAAA AABA AABB ABAA
AAAB ABBB ABBA ABAB AAAB

This expands to:

"00:00:00" $$$$$$$$"!dlrow ,olleH"zzzzzzz > "00:00:00" $$$$$$$$ "00:00:00" $$$$$$$$ : "00:00:00" $$$$$$$$ "00:00:00" $$$$$$$$ v "00:00:00" $$$$$$$$ "00:00:00" $$$$$$$$
@ "00:00:00" $$$$$$$$ "00:00:00" $$$$$$$$ ^ $$$$$$$$ "00:00:00" $$$$$$$$ "00:00:00" , $$$$$$$$ "00:00:00" $$$$$$$$ "00:00:00" _ "00:00:00" $$$$$$$$ "00:00:00" $$$$$$$$

and only runs in Prbefunge-98, because the lines are too wide for Prefunge-93 (Prefunge-93 is very limited due to the playfield limits and the wasted space from all the __TIME__ calls).