Czy zabiłeś Jabberwock?

37

Twoim zadaniem jest wyprowadzenie dokładnego ciągu

The Jabberwocky

bez udziału. Obowiązują normalne zasady dotyczące wejścia i wyjścia, więc dozwolone są zarówno funkcje, jak i programy.

Oczywiście jest haczyk, nie byłoby fajnie bez haczyka. Twój program po pozbawieniu znaków alfabetycznych musi uruchomić wiersz Jabberwocky (bez rozróżniania wielkości liter). Aby rozpocząć wiersz, musi on być ciągłym podciągiem wiersza, zaczynając od początku. Pusty ciąg znaków jest w porządku (chociaż prawdopodobnie nie uzyskasz zbyt dobrego wyniku).

Oto tekst w celach informacyjnych:

twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewarethejabberwockmysonthejawsthatbitetheclawsthatcatchbewarethejubjubbirdandshunthefrumiousbandersnatchhetookhisvorpalswordinhandlongtimethemanxomefoehesoughtsorestedhebythetumtumtreeandstoodawhileinthoughtandasinuffishthoughthestoodthejabberwockwitheyesofflamecamewhifflingthroughthetulgeywoodandburbledasitcameonetwoonetwoandthroughandthroughthevorpalbladewentsnickersnackheleftitdeadandwithitsheadhewentgalumphingbackandhastthouslainthejabberwockcometomyarmsmybeamishboyofrabjousdaycalloohcallayhechortledinhisjoytwasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabe

Oto program, którego możesz użyć do przetestowania tej właściwości.

Jeśli zabraknie wiersza do użycia, nie możesz używać żadnych dodatkowych znaków alfabetycznych.

Znaki alfabetyczne to znaki a- zi A- Zoto pełna lista:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

Punktacja

Twój program będzie oceniany w liczbie używanych bajtów niealfabetycznych, przy czym mniej będzie lepszych.

Oto program Haskell, który zdobywa odpowiedzi. (Zakłada się, że dane wejściowe są prawidłowe)

Przykładowy program

Poprawny byłby następujący program:

twas&*brilliga77812nd Thesli thyt Oves didgy reand Gim bleinth ewab eal lmims ywe""""""""
ret h eb or o g o ve sa n dthemomerAthsoutgrabebewaretheJABBERWOCKmysonthe)(*)()((*98980908(()*(jawsthatbit

Po sprowadzeniu do znaków alfabetycznych jest to:

twasbrilligandTheslithytOvesdidgyreandGimbleinthewabeallmimsyweretheb orogovesandthemomerAthsoutgrabebewaretheJABBERWOCKmysonthejawsthatbit

Który pasuje do pierwszego bitu wiersza (bez rozróżniania wielkości liter).

Ten program uzyskałby wynik 59, ponieważ zawiera te znaki niealfabetyczne:

&*77812           """"""""
          )(*)()((*98980908(()*(
Kreator pszenicy
źródło
6
Co rozumiesz przez „Rozpocznij wiersz”?
Pavel
7
Jest to trywialne w językach bez liter.
NoOneIsHere
5
Pedant we mnie czuje się zobowiązany do przypomnienia, że ​​nazwa wiersza to Jabberwocky(bez artykułu), a nazwa bestii to the Jabberwock(bez -y ). Oczywiście nie możesz teraz zmienić wymaganej mocy wyjściowej, ale ...
DLosc
6
Dlaczego tyle głosów zamyka się jako niejasne? „Oto program, którego można użyć do przetestowania tej właściwości”. część całkowicie i jednoznacznie określa prawidłowe kryteria.
user202729,
3
@JonathanAllan Ich niemożność zrozumienia pytania nie musi oznaczać, że pytanie jest niejasne ...
user202729

Odpowiedzi:

42

oOo KOD , wynik 0

Podziękowania dla Dennisa za grę w kod Brainfuck.

TwASbRIlLIgAnDthEsliTHyTOvEsdiDgyreaNdgImbleinthEwaBeaLlmimSywEreThEBoroGoveSAndTheMOmERaTHSoutGRabEbeWArEthEjaBbeRWockMYsONtHEJawsTHaTBiTEThecLawSthATcaTChBeWAReTHeJuBJuBBiRDAndsHUNtHeFRuMIoUSbANdERSnatchheTooKHisvORpaLswORdinhAndLonGtiMetHEmanXomEFoEHeSOUg

Wypróbuj online!

Mam złe wieści na temat tego wyzwania ... :(

oOo CODE to po prostu binarne kodowanie pieprzenia mózgu, które wykorzystuje wielkość liter dla każdego bitu. Tak więc, ponieważ wiersz jest wystarczająco długi (lub wystarczająco krótki), aby pokryć program Brainfuck, który drukuje The Jabberwocky(bez faktycznego próbowania gry w golfa), staje się to trywialna optymalna odpowiedź.

Martin Ender
źródło
3
Grał w golfa
Dennis
@JoKing Wypróbuj online! (wygenerowane za pomocą BF-Crunch )
Dennis
„złe wieści” ... tak, to źle. Przewidywałem, że Unary otrzyma 0 bajtów , reguła została zmieniona, a wciąż jest 0 zgłoszeń.
user202729,
5
Nie wydaje mi się, żeby to były złe wieści. Nie ma to wpływu na zabawę w golfa w innych językach.
Lynn
22

C, wynik  104   79  74

Dzięki @gastropner za obniżenie wyniku do 79 i dzięki @ wizzwizz4 za dalsze obniżenie wyniku do 74!

*t,w;a(s,b,rilligand){*(t//he
=s++)="lithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewareThe Jabberwock\0mysonthejawsthat"[b++]?//i
:121;*t>12e1?*++t//hecl
=0:a//wsthatcatchbewarethejubjubbirdandshunthefrumiou
(s,b);}an;der(s,n){a(//tchhetookhi
s,88);}

Wypróbuj online!

Steadybox
źródło
Wynik 79
gastropner
2
Czy nie //abcdefgh\nbyłoby o 1 mniej znaków niż /*abcdefgh*/?
wizzwizz4
@ wizzwizz4 Tak, tak. Dzięki!
Steadybox
20

Rozszczepienie 2 , wynik 3

twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewaRe"The Jabberwock"mysonthejawsthatbitetheclawsthatcatchbewarethejubjubbirdandshunthefrumiousbandersnatchhetookhisvorpalswordinhandlongtimethemanxomefoehesoughtsorestedhebythetumtumtreeandstoodawhileinthoughtandasinuffishthoughthestoodthejabberwockwitheyesofflamecamewhifflingthroughthetulgeywoodandburbledasitcameonetwoonetwoandthroughandthroughthevorpalbladewentsnickersnackheleftitdeadandwithitsheadhewentgalumphingbackandhastthouslainthejabberwockcometomyarmsmybeamishboyO

Wypróbuj online!

Wyjaśnienie

Możemy zignorować większość małych liter, one po prostu ustawiają energię atomu na punkcie kodowym.

...Re"The Jabberwock"my...oyO

Wielkie litery Rto punkt wejścia programu, ponieważ tworzy on atom poruszający się w prawo. Jak powiedziałem, możemy zignorować e. Następnie "przełącza tryb ciągów, który po prostu drukuje wszystkie napotkane znaki na STDOUT, co daje nam The Jabberwock. To tylko pozostawia y. Moglibyśmy użyć tych, yktóre pojawią się natychmiast y, ale wtedy musielibyśmy zmarnować co najmniej jeden bajt nieliterowy na jego wydruk ( !) i ewentualnie inny na zakończenie programu.

Zamiast tego cierpliwie czekamy na ypojawienie się bezpośrednio ow wierszu. Ponieważ pozwala nam to na użycie Oznaku, który drukuje postać i niszczy atom, kończąc program. W ten sposób jedynymi potrzebnymi znakami nieliterowymi są spacja i dwa cudzysłowy.

Martin Ender
źródło
Bardzo, bardzo imponujące.
Weijun Zhou
14

Alice , wynik 7

"T/was"bri@lligandtheslithytovesdidgyreandgimbleinthewabeallmimsywe
rethe borogovesandthemomerathsoutgrabebewarethejabberwockmysonthejawsthatbitetheclawsthatcatchbewarethejubjubbirdandshunthefrumiousbandersnatchhetookhisvorpalswordinhandlongtimethemanxomefoehesoughtsorestedhebythetumtumtreeandstoodawhileinthoughtandasinuffishthoughthestoodthejabberwockwitheyesofflamecamewhifflingthroughthetulgeywoodandburbledasitcameonetwoonetwoandthroughandthroughthevorpalbl
adewentsn

Wypróbuj online!

/Sprawia, że ruch IP przekątnej i odbijają się od krawędzi, więc faktycznie wykonywane są instrukcje "The "ono@. nRozkaz (w trybie porządkowej) popycha łańcuch „Jabberwocky” jeżeli wierzch stosu jest pusty, i owyprowadza się z górnej części stosu.

Nitrodon
źródło
1
Bardzo miła odpowiedź!
Jonathan Allan
3
Odpowiednie narzędzie do pracy.
Robert Fraser
Fajnie, próbowałem kilku rzeczy, ale nie znalazłem żadnego układu, który byłby tak dobry jak ten.
Martin Ender
13

Galaretka , ocena  6  4

twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathSOUTGRABEBEWARE“The Jabberwock”m”y

Pełny program
wypisujący wynik (jako monadyczny link drukuje The Jabberwockjako efekt uboczny i zwraca znak y)

Wstawia znaki “ ””do prefiksu wiersza ze zmienioną wielkością liter.

Działa to, ponieważ:

  1. Ostatnim hprzed SOUTGRABEBEWARE“The Jabberwock”m”y(przynajmniej w chwili pisania tego tekstu!) Niezdefiniowany atom, który sprawia, że wszystko staje się nowy związek, który trwa domyślne wejście 0i wykonuje pewne funkcje monadycznego, SOUTGRABEBEWARE, których wydajność 1(patrz niżej).

  2. 1“The Jabberwock”mnastępnie wykonuje mcięcie plastry modulo, "The Jabberwock"z wielkością plastra 1, dając "The Jabberwock".

  3. Końcowy ”yciąg jest nowym wiodącym ciągłym łańcuchem, więc Jelly drukuje tę listę znaków, a następnie zwraca znak y, a ponieważ jest to koniec programu, drukuje się.

 implicit input = 0
S sum             0
O cast to ordinal 0
U upend           [0]
T truthy indices  []
G group           []
R range           []
A absolute value  []
B to-binary       []
E all-equal?      1
B to-binary       [1]
E all-equal?      1
W wrap            [1]
A absolute value  [1]
R range           [[1]]
E all-equal?      1

Poprzednie 6 bajtów:

twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware
“The Jabberwock”m1“y

Wypróbuj online!

Sześć nie-wierszowych znaków to znak nowej linii “ ”1“.


Alternatywne 6s:

“T“wasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewaret“he Jabberwock”m2“y

twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewaret
“The Jabberwockmy”ṪṭṖ
Jonathan Allan
źródło
Czy bez tego pierwszy program jest nieprawidłowy m1“y? Nadal drukuje The Jabberwocki zaczyna się od podzbioru wiersza
dylnan
1
Nie, m1“y(lub może być m1”y) jest potrzebne, ponieważ musimy drukować The Jabberwocky, a nie The Jabberwock.
Jonathan Allan
7

Węgiel , wynik 3

twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware⎚The Jabberwock⌈my

Wypróbuj online!

Wstawiono trzy znaki: ⎚ ⌈

... działa również z całym wierszem .

W jaki sposób?

twas ... ware⎚The Jabberwock⌈my - no input
twas ... ware                    - print this text     >  twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware
             ⎚                  - clear the screen    >
               The Jabberwock    - print this text     > The Jabberwock
                             ⌈   - (print) maximum of:
                              my -   this text         > The Jabberwocky
Jonathan Allan
źródło
5

Ruby ( -p), wynik 12

$_=#twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware
'The Jabberwock'+#m
?y

Wypróbuj online!

Nadużywaj wszystkich komentarzy!

Z -pflagą ruby ​​wydrukuje wszystko, co jest zapisane $_. Wymaga jednego wiersza dowolnego wejścia.

Pavel
źródło
Nie sądzę, że możesz -ptu użyć , ze względu na wymaganą linię wprowadzania. „Twoim zadaniem jest wyprowadzenie dokładnego ciągu The Jabberwockybez przyjmowania danych wejściowych.”
benj2240
@ benj2240 -pjest flagą wiersza poleceń, a nie danymi wejściowymi.
Pan Xcoder,
2
@ benj2240 Meta concencus przyjmuje nieużywane puste wejście, gdy nie jest wymagane żadne wejście . To zajmuje pustą linię.
Pavel
@Pavel Rozumiem, dziękuję
benj2240,
5

Węgiel drzewny , wynik: 5 4

twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware⎚The Jabberwock¿m¦y

Wypróbuj online! Edycja: Zapisano 1 bajt dzięki tylko @ ASCII. Objaśnienie: Przekłada się na następujący pełny kod:

Print("twas...beware");
Clear();
Print("The Jabberwock");
if ("m") Print("y");
Neil
źródło
cały wiersz: P
tylko ASCII
@JonathanAllan Naprawiono!
Neil
4

Foo , ocena 5

twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware"The Jabberwock"m"y"

Wypróbuj online!

Steadybox
źródło
4

> <> , Wynik: 13 12

\twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware
\"The Jabberwockmy"$~\sonthejawsthatbitetheclawsthatcatchbewarethejubjubbirdandshunthefrumiousbandersnatchhetookhisvorpalswordinhandlongtimethemanxomefoehesoughtsorestedhebythetumtumtreeandstoodawhileinthoughtandasinuffishthoughthestoodthejabberwockwitheyeso
fflamecamewhifflingth>ro<

Wypróbuj online!

Weryfikacja i ocena .

Natychmiast przekierowuje do drugiej linii, która wypycha „Jabberwockmy” w odwrotnej kolejności do stosu. $~wyskakuje nadmiar mi >ro<drukuje cały stos, uprzednio go odwracając.

Jo King
źródło
3

Siatkówka 0.8.2 , wynik: 21 20 18 16 13 8 6

|twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware
The Jabberwock0$*my

Wypróbuj online! Edycja: Wynik zmniejszony o 2 dzięki @MartinEnder.

Neil
źródło
Możesz zdobyć 6 w ten sposób: tio.run/…, a następnie 5, przechodząc do Retina 1.0 (i używając *zamiast $*).
Martin Ender
3

C, wynik 23

twasbrilligandtheslithytovesdidgyreandgimble(int**h){//ewabeallmimsyweretheborogovesandthemomerat
*h//soutgrabebeware
="The Jabberwock"//m
"y";}

Wypróbuj online!

Thomas Padron-McCarthy
źródło
2

Yabasic , 13

Dzięki za Rubinową odpowiedź @ Pavela!

#twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware
?"The Jabberwock";//m
?"y"

Wypróbuj online!

Weijun Zhou
źródło
Liczę wynik 20, myślę, że zapomniałeś policzyć nowe linie.
Pavel
Tak, są też problemy z wynikami innych odpowiedzi.
Weijun Zhou
Tylko uwaga: Yabasic jest dostępny do wypróbowania w Try It Online, powinieneś rozważyć dodanie linku do swojego rozwiązania w TIO, takiego jak ten
Taylor Scott
@TaylorScott Jak mogę tego nie zauważyć! Naprawiony.
Weijun Zhou,
Myślę, że masz dodatkowe „the” na końcu pierwszego wiersza.
maja 21
2

VBA, ocena 5

Uruchom w oknie natychmiastowym:

?twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware"The Jabberwock"m"y

Jak to działa:

? - Wyświetla dane wyjściowe jako ciąg

-

twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware - bez wyraźnej deklaracji jest to traktowane jako pusty ciąg

-

"The Jabberwock"- Strunowy. Kiedy umieścisz 2 zmienne / ciągi obok siebie, VBA automatycznie je połączy. (2 ciągi niezmienne wymagałyby spacji, aby nie dodawać cudzysłowu)

-

m - Kolejny domyślny pusty ciąg, automatycznie łączony

-

"y- Kolejny ciąg. Pozostawione otwarte, Natychmiastowe okno automatycznie zamknie to, gdy dojdzie do końca linii - ponownie automatycznie połączone

-

1 znak zapytania, 1 spacja i 3 podwójne cudzysłowy. VBA widzi to jako ?"" & "The Jabberwock" & "" & "y"lub?"The Jabberwocky"

Chronocidal
źródło
2

Haskell , ocena 12

twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware="The Jabberwock"++{-m-}"y"

Wypróbuj online!

Definiuje funkcję zerowego argumentu, twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware :: Stringktórej wynikiem jest "The Jabberwocky".

Lynn
źródło
2

Java (OpenJDK 9) , wynik 11

twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware->"The Jabberwock"+//m
"y"

Wypróbuj online!

Kredyty

Olivier Grégoire
źródło
1
Wynik -2, zmieniając ()na t(nieużywany Voidparametr zerowy) i usuwając interlinię tz komentarza.
Kevin Cruijssen
2
@KevinCruijssen Dziękujemy za wgląd. :-) Jednak jeśli chodzi o <s>16</s> 14I wolę, jak zawsze w każdej sieci StackExchange, aby uzyskać ostateczną odpowiedź. Same zmiany są wymienione na stronie wersji , dzięki czemu każdy może zobaczyć rzeczywiste zmiany i ewolucję odpowiedzi w czasie, zamiast umieszczać wszystkie przeszłe i bieżące informacje w jednym dużym, nieczytelnym poście.
Olivier Grégoire,
Ach, okej, w porządku dla mnie. :) Edycja miała głównie na celu naprawienie „bajtów” do „score”.
Kevin Cruijssen
1
@KevinCruijssen Rzeczywiście, widziałem twoją zmianę w kredytach i byli mile widziani. W poprzednim komentarzu miałem na myśli tylko tytuł. Stworzyłem nawet meta-post na ten temat. ;-)
Olivier Grégoire
1
Teraz, gdy usunąłeś komentarz do pierwszego wiersza, nie potrzebujesz już podziału wiersza.
Wheat Wizard
2

PowerShell , wynik: 19 10

#twasbrilligandTheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewarethe
'The Jabberwock'+#m
'y'

Wypróbuj online!

Rubinowa odpowiedź Porta Pavela . Dzięki Jo King za -9 punktów.

Struny są +łączone razem. Po usunięciu komentarzy i analizie kodu program PowerShell widzi to jako 'The Jabberwock'+'y'. Ten ciąg jest pozostawiony w potoku, a dane wyjściowe są niejawne.

AdmBorkBork
źródło
Właśnie miałem opublikować tę dokładną odpowiedź: P
Pavel
Nie można łączyć Thei Jabberwockw jednym ciągu? Wypróbuj online!
Jo King
@JoKing Rzeczywiście, dzięki. Zabawne, jak sobie radzisz bez znaku kontynuacji linii. Zastanawiam się, kiedy zmieniła się ta zasada analizowania ...
AdmBorkBork
1

Galaretka , wynik: 8

“ĠȥṘ®ṖȤ»

Wypróbuj online!

Po prostu kompresuje ciąg znaków i jest ciągiem pustym po usunięciu wszystkich znaków niebędących alfabetami. Irytujące, najkrótsza skompresowana forma, “81Iȯd»ma znaki alfabetyczne, z których żaden nie jest tlubw

Cairney Coheringaahing
źródło
1

05AB1E , wynik 14

"twasbrilligand""The ""slithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewarethe"Š"Jabberwock"+"my"Š

Wypróbuj online!

Pan Xcoder
źródło
1

Płótno , wynik 5

twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware∙The Jabberwockpm∙yp

Wypróbuj tutaj!

dzaima
źródło
1

SOGL V0.12 , wynik 9

twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware”The” Jabberwock”:⁄m+ y+

Wypróbuj tutaj!

dzaima
źródło
1

Pip , ocena 5

twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewarethejabberwockmysonthejawsthatbitetheclawsthatcatchbewarethejubjubbirdandshunthefrumiousbandersnatchhetookhisvorpalswordinhandlongtimethemanxomefoehesoughtsorestedhebythetumtumtreeandstoodawhileinthoughtandasinuffishthoughthestOOD|"The Jabberwock"witheyesofflamecamewhifflingthroughthetulge'y

Wypróbuj online!

Na szczęście wszystkie małe litery w Pipie są zmiennymi, które same w sobie nie wyrażają się w wyrażeniach. Interesująca część kodu:

OOD|"The Jabberwock"

Skaner rozpada się, OODa Onastępnie OD. ODjest niezdefiniowaną zmienną, która ma wartość zero (falsey); następnie logicznie - lub to z "The Jabberwock", i Owyprowadzamy go bez nowej linii.

'y

Ciąg jednoznakowy y. Ponieważ jest to ostatnie wyrażenie w programie, jest drukowane.

DLosc
źródło
1

SmileBASIC, wynik 10

@twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware?"The Jabberwock";
@m?"y

Zostało to prawie zaczerpnięte bezpośrednio z odpowiedzi Yabasic, a ponieważ SB jest lepszym językiem, możemy go skrócić za pomocą etykiet zamiast komentarzy, co eliminuje potrzebę niektórych podziałów linii

Istnieje również to alternatywne rozwiązanie dla tego samego rozmiaru:

@twasbrillig ... ?"The Jabberwock"+@my[2]

Etykieta wewnątrz wyrażenia jest traktowana jako ciąg. ( @my == "@my"), więc przyjęcie znaku 2 daje „y”.

12Me21
źródło
1

C (gcc) , wynik 58

Przydatny fakt, że // komentarze w stylu + nowe linie są tańsze niż w starym stylu, pochodzi prosto z komentarza @ wizzwizz4 dla odpowiedzi @ Steadybox .

Flaga -m32 jest wymagana.

Długie nazwy funkcji mogą wywoływać u niektórych kiepski nastrój, podczas gdy inni słusznie uznają takie zarzuty za naśladujące; w końcu wszyscy musimy słuchać syrenowej piosenki o niskich wynikach.

twasbrilligan;d(t,h,e,slithytovesdidgyreandgimble)int*h,*e;//wabeallmimsywere
{t--?*h++=*e++,//borogovesan
d(t,h,e):0;}momerathsoutgrabebewar;*e="The Jabberwock\171";mysonthejawsthatbitetheclawsthatcatchbewarethejubjubbirdandshunthefrumiousbandersnatchhetookhisvorpalswordinhandlongtimethemanxomefoehesoug(h,tsoreste){d(4,h,e);}

Wypróbuj online!

gastropner
źródło
1

Partia, wynik 15 11

:twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewarethejabberwockmysonthejawsthatbiteth
@ec%lawsthatcatchbewarethejubjubbirdandshunthefrumiousbandersnatchhetookhisvorpalswordinhandlongtimethemanxomefoehesoughtsorestedhebythetumtumtreeandstoodawhileinthoughtandasinuffisht%ho%ughthestood% The Jabberwock%withe%y

Zasadniczo tylko echo The Jabberwockyz nieużywanymi zmiennymi i etykietami.

Stara wersja (24 punkty):

:twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewarethejabberwockmysonthejawsthatbitetheclawsthatcatchbewarethejubjubbirdandshunthefrumiousbandersnatchhetookhisvorpalswordinhandlongtimethemanxomefoehesoughtsorestedhebythetumtumtreeandstoodawhileinthoughtandasinuffishthoughthestoodthejabberwockwitheyesofflamecamewh
@if %1%fl%i==%ngthroughthetulgeywoodandburbledasitcameonetwoonetwoandthroughandthroughthevorpalbladewentsnickersnackheleftitdeadandwithitsheadhewentgalumphingbackandhastthousla%i n The Jabberwock%cometom%y
:armsmybeamishboyofrabjousdaycalloohcallayh
@echo %*

Wymaga zapisania kodu w pliku o nazwie n.bati uruchomienia z tego samego katalogu.

Alternatywna wersja, która może mieć dowolną nazwę (wynik 27):

:twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewarethejabberwockmysonthejawsthatbitetheclawsthatcatchbewarethejubjubbirdandshunthefrumiousbandersnatchhetookhisvorpalswordinhandlongtimethemanxomefoehesoughtsorestedhebythetumtumtreeandstoodawhileinthoughtandasinuffishthoughthestoodthejabberwockwitheyesofflamecamewh
@if %1%fl%i==%ngthroughthetulgeywoodandburbledasitcameonetwoonetwoandthroughandthroughthevorpalbladewentsnickersnackheleftitdeadandwithitsheadhewentgalumphingbackandhastthousla%i %~n0 The Jabberwock%cometom%y
:armsmybeamishboyofrabjousdaycalloohcallayh
@echo %*

Objaśnienie (z usuniętymi zmiennymi):

:twas...                         Label (No labels were used, no goto in the poem)
@if %1i==i %~n0 The Jabberwocky  If no command line arguments, run this batch file again
:arms...                          with the arguments 'The Jabberwocky'
@echo %*                         Echo all arguments
użytkownik2033427
źródło
1

Perl 5, podprogram, wynik 11

{twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware;'The Jabberwock'.~'X'}

ale ze znakiem \ x86 ( v134) zamiast X.

(perlsub mówi: „Podpis jest częścią ciała podprogramu. Zwykle ciało podprogramu jest po prostu wzmocnionym blokiem kodu”).

msh210
źródło
Czy to drukuje y?
Jo King
@JoKing ups! Teraz tak jest; dzięki.
msh210
1

Rubinowy , 9 bajtów nieliterowych

twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewarethejabberwockmysonthejawsthatbitetheclawsthatcatchbewarethejubjubbirdandshunthefrumiousbandersnatchhetookhisvor=p alswordinhandlongtimethemanxomefoehesoughtsorestedhebythetumtumtreeandstoodawhileinthoughtandasinuffishthoughthestood="The Jabberwock"+withe=?y

Wypróbuj online!

Wersja golfowa (dla czytelności):

x=p z="The Jabberwock"+w=?y

Wykorzystuje kilka długich i bezużytecznych zmiennych. W Ruby możesz umieścić whatever_you_want=przed wyrażeniem, a ono nadal zwróci to wyrażenie, tylko z efektem ubocznym utworzenia zmiennej o dziwnej nazwie.

MegaTom
źródło
1

Samomodyfikujący Brainfuck , wynik 16

twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware␀The Jabberwock␀my<[<<]>[.>]>>.

Wypróbuj online!

Wyjaśnienie

Początkowo taśma jest skonfigurowana w następujący sposób:

  T h e  J a b b e r w o c k  m y < [ < < ] > [ . > ] > > .   

<[<<]

T>[.>]y>>.

ბიმო
źródło