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 piosenki „99 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.
2004.08.16 | 5 komentarzy |
tagi » sztuka programowania
Komentarze
#1 | 2004.08.24 09:05 | MiMaS
w ramach dalszych przykładów:
- HelloWorld inaczej niż powyżej [z kolekcji Hello World Page!]
- ROT13 [z kolekcji ROT13]
- quine [z kolekcji The Quine Page (self-reproducing code)]
#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.