İçeriğe atla

Brainfuck: Revizyonlar arasındaki fark

güncelleme
[kontrol edilmiş revizyon][kontrol edilmiş revizyon]
kDeğişiklik özeti yok
(güncelleme)
Aşağıdaki program ekrana [[Merhaba dünya programı|"Hello World!"]] ve bir yeni satır yazmaktadır:
 
<sourcesyntaxhighlight lang="bf">
+++++ +++++ sayaca (sıfırıncı hücreye) 10 değerini ata
[ sıradaki dört hücreye 70/100/30/10 değerlerini atamak için döngü kullan
> + . '!' yaz
> . '\n' yaz
</syntaxhighlight>
</source>
 
Bu kod parçası, okunabilirliği sağlamak için satırlara bölünmüş, boşluklar ve yorumlar eklenmiştir. Brainfuck, sekiz komut karakteri <code>+-<>[],.</code> haricindeki tüm karakterleri yok sayar. Bu nedenle (eklenecek yorum, komut karakterleri içermediği sürece) koda yorum eklemek için özel bir [[söz dizimi]]ne ihtiyaç yoktur. Yukarıdaki kodun fazladan karakterlerden arındırılmış hâli aşağıdaki gibi görünecektir:
<sourcesyntaxhighlight lang="bf"> ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.</sourcesyntaxhighlight>
 
İlk satır <code>a[0] = 10</code>, [[Dizi (bilgisayar bilimleri)|dizi]]nin ilk elemanına 0'dan başlayıp 10 kez artırarak ilk değerini atamaktadır. İkinci satırdan başlayan döngü, dizinin diğer elemanlarına değerler atamaktadır: <tt>a[1] = 70</tt> ('H' harfinin [[ASCII]] kod değeri olan 72'ye yakın bir değer), <code>a[2] = 100</code> ('e' harfinin ASCII değeri 101'e yakın), <code>a[3] = 30</code> (boşluk karakterinin ASCII değeri 32'ye yakın) ve <code>a[4] = 10</code> (yeni satır karakteri). Döngü, işaretçiyi dizi elemanları üzerinde kaydırarak <code>a[0]</code>'ın değeri 10'u sırasıyla 7,10,3 ve 1'le çarpmaktadır. Döngü bittikten sonra <code>a[0]</code>, 0'a eşit olur.