Brainfuck na śniadanie

Powrót do pracy po dwóch tygodniach urlopu niechybnie oznacza cios. Jeżeli taki powrót następuje w sytuacji balansowania między dwoma projektami to ciosy padają ze wszystkich strona równocześnie. Umysł niebezpiecznie wręcz rozluźniony, odzwyczajony zarówno od walki o utrzymanie się na powierzchni grzęzawiska jak i od ścisłej koncentracji w niesprzyjających warunkach, potrzebuje w takich chwilach szybkiego sformatowania — np. w postaci małego ćwiczenia w Brainfucku.

Brainfuck (nazwa czasem cenzurowana do BF) to znany od jakichś 10 lat i powszechnie lubiany język programowania składający się z 8 (słownie: ośmiu) instrukcji. Ponieważ jest zupełny w sensie Turinga, więc teoretycznie można nim rozwiązać każdy rozwiązywalny problem matematyczny; powinien się zatem do czegoś konkretnego nadawać. I faktycznie nadaje się ... nawet do rzeczy „poważnych inaczej”, jak wypisanie słów piosenki99 Bottles of Beer”. Jednak przede wszystkim ascetyczna elegancja Brainfucka robi z niego idealne narzędzie do wspomnianego formatowania umysłu.

Np.: jak i dlaczego poniższy kod wypisuje „Hello World!”?

>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..
+++.[-]>++++++++[<++++>-]<.>+++++++++++[<+++++>-]<.>++
++++++[<+++>-]<.+++.------.--------.[-]>++++++++[<++++
>-]<+.[-]++++++++++.

Albo co takiego robi ten kod (równie konsekwentnie ignorujący jakiekolwiek formatowanie, potraktuj to jako element ćwiczenia):

>++++++++[<+++++++++>-]<+++++.>++++[>+++++<-]>[<+++++>
-]<---.>++++[>+++++<-]>[<+++++>-]<++++++++.<.>>[-]>+++
+++++[<++++>-]<.>>++++[>+++++<-]>[<+++++>-]<++++++++++
++++.---.>[-]+++++[>+++++<-]>[<+++++>-]<---.<<<<<+++++
+.>>>>+++.>.<<<<<--.>>>>>---.[-]++++[>+++++<-]>[<+++++
>-]<+++++++.<<<<<----.[-]>++++++++[<++++>-]<.[-]>+++++
++[<++++++++>-]<++.[-]>++++++[<+++++++>-]<+++.----.[-]
++++++++++.

Chwila zastanowienia, zmuszenie się do koncentracji i ... od razu lepiej, prawda? ;-)

PS: Jednak jeżeli powyższe tylko pogarsza sytuację i już naprawdę nie umiesz inaczej — szukaj pomocy na stronie BF online.

Komentarze

#1 | 2004.08.24 09:05 | MiMaS

w ramach dalszych przykładów:

#2 | 2006.01.07 23:42 | Rafał

Brainfuck jest super i adekwatny do nazwy.

#3 | 2006.01.20 20:05 | Odczytaj :)

Świetna rzecz :)

Zamiast podpisu:
++++++[>++++++++++<-]>+++++.+++++++++++++++++++.-----.----.<++++ +++[>-----<-]>--.

#4 | 2006.01.20 20:07 | [anonim]

Poprawka:
++++++[>++++++++++<-]>+++++.+++++++++++++++++++.-----.----.

#5 | 2006.08.06 09:42 | A to moje imię ;P

+++++++[>+++++++++++.>+++++++++[>+++++++++++--.>++++++++++[>+++++++++++++++.>+++++++++[>+++++++++++.>++++++++++[>+++++++++++++++.>++++++++++[>+++++++++++.

 

Uwaga: Ze względu na bardzo intensywną działalność spambotów komentowanie zostało wyłączone po 60 dniach od opublikowania wpisu. Jeżeli faktycznie chcesz jeszcze skomentować skorzystaj ze strony kontaktowej.