Oto prosty, bite-sized (bajt wielkości?) Kod golf: podany niepusty lista liczb całkowitych dodatnich mniej niż 10, wydrukować blok-przekątna matrycy, gdzie wykazie określa wielkość bloków, w porządku. Bloki muszą składać się z dodatnich liczb całkowitych mniejszych niż 10. Więc jeśli podano jako dane wejściowe
[5 1 1 2 3 1]
Twój wynik może być na przykład
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 1
lub
1 2 3 4 5 0 0 0 0 0 0 0 0
6 7 8 9 1 0 0 0 0 0 0 0 0
2 3 4 5 6 0 0 0 0 0 0 0 0
7 8 9 1 2 0 0 0 0 0 0 0 0
3 4 5 6 7 0 0 0 0 0 0 0 0
0 0 0 0 0 8 0 0 0 0 0 0 0
0 0 0 0 0 0 9 0 0 0 0 0 0
0 0 0 0 0 0 0 1 2 0 0 0 0
0 0 0 0 0 0 0 3 4 0 0 0 0
0 0 0 0 0 0 0 0 0 5 6 7 0
0 0 0 0 0 0 0 0 0 8 9 1 0
0 0 0 0 0 0 0 0 0 2 3 4 0
0 0 0 0 0 0 0 0 0 0 0 0 5
czy jakoś tak. Elementy w macierzy muszą być oddzielone (pojedynczymi) spacjami, a wiersze oddzielone (pojedynczymi) znakami nowej linii. Na liniach nie mogą znajdować się spacje wiodące ani końcowe. Możesz wydrukować nowy znak końcowy lub nie.
Możesz napisać funkcję lub program, przyjmując dane wejściowe przez STDIN (lub najbliższą alternatywę), argument wiersza poleceń lub argument funkcji, w dowolnym dogodnym formacie łańcucha lub listy (o ile nie jest on wstępnie przetworzony). Jednak wynik musi być wydrukowany do STDOUT (lub najbliższej alternatywy), w przeciwieństwie do zwracanej z funkcji, powiedzmy.
Nie wolno używać żadnych wbudowanych funkcji zaprojektowanych do tworzenia macierzy blokowych.
To jest kod golfowy, więc wygrywa najkrótsze przesłanie (w bajtach).
Liderów
Oczekuję, że języki oparte na tablicach (takie jak J i APL) będą miały tutaj przewagę, ale nie chcę, aby zniechęcało to ludzi do robienia tego tak dobrze, jak potrafią w wybranym przez siebie języku. Oto fragment kodu, który pozwala wygenerować zarówno zwykłą tabelę wyników, jak i przegląd zwycięzców według języka. Dlaczego więc nie spróbować złapać tego drugiego?
Aby upewnić się, że twoja odpowiedź się pojawi, zacznij od nagłówka, korzystając z następującego szablonu Markdown:
# Language Name, N bytes
gdzie N
jest rozmiar twojego zgłoszenia. Jeśli poprawić swój wynik, to może zachować stare porachunki w nagłówku, uderzając je przez. Na przykład:
# Ruby, <s>104</s> <s>101</s> 96 bytes
[:=/~]#<\
liczyły do twojego wyniku. Również=/~@#<\
za dwa dodatkowe bajty zostały ogolone.