Dalam Befunge-93, sering kali menguntungkan untuk meratakan loop menjadi satu baris, dengan bagian loop kode dieksekusi di kedua arah.
Misalnya, perhatikan kode di bawah ini, yang menghasilkan huruf a
delapan kali:
"a"9>1-:#v_@
^\,:\<
Ini dapat diratakan menjadi satu baris dengan memotong urutan loop dengan instruksi bridge ( #
):
"a"9>1#\-#,:#:>#\_@
Cobalah online!
Jika Anda hanya melihat karakter non-spasi, Anda mungkin mendapat kesan bahwa ini lebih panjang dari aslinya. Tetapi begitu Anda memperhitungkan umpan baris dan bantalan tambahan yang diperlukan dalam versi dua baris, Anda sebenarnya menghemat empat byte.
Dalam kasus khusus ini, kode tersebut dikompres lebih jauh dengan mencatat bahwa urutan tersebut :#:
dapat diganti dengan :
.
"a"9>1#\-#,:>#\_@
Cobalah online!
Bahkan, setiap kali Anda memiliki instruksi yang sama diulang di kedua sisi #
perintah, Anda bisa menyederhanakannya menjadi hanya satu instruksi, jadi ini adalah sesuatu yang harus selalu Anda perhatikan ketika meratakan sebuah loop.
Untuk memahami bagaimana ini bekerja, dapat membantu untuk menuliskan urutan loop dua kali, sekali dengan semua karakter setelah #
dihapus (yaitu apa yang terjadi ketika mengeksekusi kiri ke kanan), dan sekali dengan karakter sebelum #
dihapus (yaitu mengeksekusi kanan ke kiri ).
"a"9>1#\-#,:>#\_@
>1 - :> _ ; executing left to right
> \ ,: \_ ; executing right to left
Anda dapat dengan jelas melihat sekarang bagaimana ini cocok dengan versi dua baris asli dari kode.