Джо , 5 3 байта (+2 или +3 для -t
флага)
Ну, очевидно, я не использовал весь потенциал Джо. Это было возможно еще тогда, когда я впервые опубликовал это.
\AR
Здесь R
дает диапазон от 0 до n, эксклюзив. Затем \A
принимает последовательные префиксы этого ( A
функция идентичности). Примеры:
С -t
флагом (примечание: теперь это стандартный вывод даже без флага):
(\AR)5
0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
\AR5
0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
\AR2
0
0 1
\AR1
0
\AR0
Без этого:
\AR5
[[0], [0, 1], [0, 1, 2], [0, 1, 2, 3], [0, 1, 2, 3, 4]]
(\AR)5
[[0], [0, 1], [0, 1, 2], [0, 1, 2, 3], [0, 1, 2, 3, 4]]
\AR2
[[0], [0, 1]]
\AR1
[[0]]
\AR0
[]
Правила немного изменились. Мой старый код не работал правильно с N = 0. Кроме того, теперь выходные данные могут быть просто вложенным списком, поэтому -t
их можно отбросить.
1R1+R
Теперь Rn
дает диапазон от 0 до n, эксклюзив. Если задано 0, возвращается пустой список. 1+
добавляет 1 к каждому элементу этого диапазона. 1R
сопоставляет значения с диапазонами от 1 до x. Пустые лиаты, при отображении возвращают пустые списки.
Пример вывода:
1R1+R0
[]
1R1+R5
[[1], [1, 2], [1, 2, 3], [1, 2, 3, 4], [1, 2, 3, 4, 5]]
Обновление: я только что заметил что-то. Функция автоматически сопоставляется с рангом 0 элементов. Следующий пример запускается с -t
флагом.
1R1+R3 5 8
1
1 2
1 2 3
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
Старый: 5 байт (с -t
флагом)
1R1R
Это анонимная функция, которая принимает число, создает список от 1 до N ( 1Rn
) и отображает эти значения в предыдущий диапазон, давая диапазон от 1 до x для каждого элемента в диапазоне от 1 до N.
-t
Флаг дает выходной сигнал в виде J-подобной таблицы.
1R1R5
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
Примечание: язык очень новый и не полный, но перед этим испытанием была выпущена последняя версия.