Eksperymentuję z nową platformą i próbuję napisać program, który zajmuje się łańcuchami nie dłuższymi niż 60 znaków i chciałbym zapełnić magazyn danych niektórymi znanymi lub dobrze znanymi małymi fragmentami kodu i równania, ponieważ programowanie i matematyka są zgodne z tematem mojego oprogramowania. Kod może być w dowolnym języku i równaniach z dowolnej dyscypliny matematyki, pod warunkiem, że ich długość wynosi mniej niż 60 znaków. Podejrzewam, że ludzie wybiją sobie mózg na ten temat.
Na przykład,
#include<stdio.h>
int main(){printf ("Hi World\n");return 0;}
60 znaków dokładnie!
Dziękuję bardzo za twoją mądrość!
algorithms
source-code
BeachRunnerJoe
źródło
źródło
Odpowiedzi:
Klasyczna procedura kopiowania ciągów C znana jest coraz mniej osób przez te dni:
źródło
if (alarm = red) launchNukes();
-trap). Dijkstra uznałby ten kod za bardziej niż szkodliwy. Zgadzam się, że programista C musi koniecznie zrozumieć ten kod, ale myślę, że ważniejsze jest, aby wiedział, jak to zrobić lepiej.nie jedna linia, ale przedstawiam The Last Last Bug Bug:
źródło
LaunchNukes();
Widzę, jak Conway's Game of Life w APL często się unosi:
Dodatkowym bonusem jest to, że zapewni to poprawną obsługę Unicode.
źródło
Zmodyfikowana wersja słynnego jedno liniowego Perla:
To wyrażenie regularne dopasowuje ciągi, których długość jest liczbą pierwszą.
Oryginalna wersja to:
który pasuje do ciągów znaków składających się z pierwszej liczby 1.
źródło
Szybkie sortowanie:
Jeśli lista jest pusta, posortowany wynik jest pustą listą.
Jeśli lista zaczyna się od elementu x, a resztą listy jest xs, wówczas posortowany wynik jest listą składającą się z posortowanej listy składającej się ze wszystkich elementów w xs mniejszych niż x połączonych z elementem x połączonym z posortowaną listą wszystkich elementy w xs większe niż x.
(lub innymi słowy - podziel na dwa stosy, wszystkie mniejsze niż x i wszystkie większe niż x, posortuj je oba i utwórz listę ze stosem mniejszym niż, elementem x i stosem większym niż).
Dość łatwo przewyższa zrozumiałość wersji C.
źródło
qsort (x:xs) = qsort lesser ++ equal ++ qsort greater where (lesser,equal,greater) = part x xs ([],[x],[])
Funkcja Ackermana . Implementacja wersji Ackermann-Péter powinna mieścić się w 60 znakach :)
Ta piękna stała szesnastkowa: 0x5f3759df. Jest to serce najbardziej kodu WTFing, jaki kiedykolwiek widziałem: szybki odwrotny pierwiastek kwadratowy .
Słynna zamiana XOR .
question = /(bb|[^b]{2})/
źródło
Kiedy po raz pierwszy wymyśliłem bash Forkbomb, pomyślałem, że to naprawdę słodkie.
źródło
i jego pochodne wydają się być popularne. :-)
źródło
Ponieważ wspominasz równania, ten należy do twojej listy:
( Wolfram Alpha renderowania : )
źródło
e^{i/pi} = i^2
i² == -1
, dzięki czemu można zrównoważyć równanie przez odjęcie jednego z obu stron, usuwanie+1
i zmianę=0
do-1
lubi²
Jak wykryć liczby parzyste:
źródło
!(x%2)
w rozsądnych językach.!(x & 1)
w językach bez optymalizacji kompilatora.import this
w Pythonie.EDYTUJ, ponieważ komentarze nie mogą zawierać podziałów linii: Dla tych, którzy nie mają przydatnego interpretera Pythona, jest to wynik
źródło
Nie do końca 2 linie, ale powiedziałbym, że jest to dość znane:
W rzeczywistości niektóre języki mogą to opisać w jednym wierszu. Lua przychodzi na myśl, ale jest ich więcej.
źródło
Moim ulubionym przykładem rachunku lambda jest kombinator Y:
źródło
Z ćwiczenia w K&R, oto funkcja, która zwraca liczbę bitów ustawionych w podanej liczbie. Przy 58 znakach:
Zajmuje to czas proporcjonalny do liczby ustawionych bitów. Oto część „ah ha”
Usuwa najbardziej prawy ustawiony bit z
n
.źródło
Rekurencyjny trójkąt Pascala w jednej linii (Haskell)
52 znaki, dodaj spacje do smaku. Dzięki uprzejmości „Ephemient” w komentarzu tutaj .
Myślałem, że to lepszy przykład niż tajemnicze, ale krótkie rozwiązania w J i K (chociaż nie jestem jeszcze użytkownikiem Haskell).
źródło
Unix Roulette (NIEBEZPIECZEŃSTWO!)
Dzięki uprzejmości odpowiedzi Bigown w wątku dowcipu (i komentarz):
(Ma on 62 znaki, więc możesz usunąć komentarz (czy to zadziałałoby w ten sposób?) Lub niektóre nieistotne spacje.)
źródło
Infinite Fibonacci Sequence (Haskell)
źródło
fibs = 0 : scanl (+) 0 fibs
?To jeden z najdroższych błędów w historii. Ta instrukcja Fortran przypisuje wartość zmiennoprzecinkową 1.3 do nazwanej zmiennej
DO10I
.Prawidłowy kod - nagłówek powtarzających się instrukcji pętli, aż instrukcja zostanie oznaczona jako 10, a zmienna pętli
I
przyjmuje wartości 1, 2, 3:źródło
Urządzenie Duffa :
Tom Duff rozwinął zmapowany w pamięci port, zapisując go w jednym z najdziwniejszych konstruktorów C, jakie widział świat.
źródło
Przychodzi mi na myśl wszystko, co wiąże się z Hello World. Możesz wybrać różne warianty, jeśli planujesz przechowywanie wielu języków.
Czegoś więcej nietrywialne, tam Fibbonacci .
źródło
Powyższa linia podziałów kodu Scala
people
(listaPerson
s) na dwie listy w zależności od ich wieku.Wykonanie tej samej czynności w Javie wymaga dużej części kodu:
źródło
Zamiana wartości dwóch zmiennych bez użycia trzeciej zmiennej. To jedna z pierwszych rzeczy w programowaniu, które powiedziano mi i pomyślałem „Hmm ... to fajnie”
źródło
XOR
s, ale to była moja odrobina nostalgii na dziś :)Czarna magia od Johna Carmacka
źródło
Największa liczba, która może być reprezentowana przez 8 bajtów (Python)
źródło
Operator warunkowy :
minVal = (a <b)? a: b;
Sprawa przełącznik
dla każdej pętli [Java]
źródło
!
do operatora jednoargumentowego lub+
operatora binarnego. To po prostu nie jest dokładne.?:
to jest operator warunkowy;)Ta Quine z pliku żargonu w C:
Jest tam również wersja LISP, ale możesz znaleźć wiele innych unoszących się wokół, w prawie dowolnym języku, który możesz zobrazować ...
źródło
tożsamość eulera, która łączy najpiękniejsze liczby we wszechświecie matematycznym: 1, 0, e, i oraz π: e ^ i (π) + 1 = 0
źródło
Miałem dobry i zapisałem go na marginesie.
źródło
Prawdopodobnie nie sławny, ale jeden z moich ulubionych. Dla większości nie od razu wiadomo, dlaczego to działa.
źródło
Jest to nieco ponad 60 znaków, ale tak naprawdę zależy od nazewnictwa zmiennych (więc to uwzględniam!)
niech readLines (rdr: StreamReader) =
seq {podczas gdy rdr.EndOfStream nie
daje rdr.ReadLine ()}
Przyjemna mała funkcja do odczytu pliku w sekwencji wiersz po wierszu w F #.
źródło