Введение

Короткая командная строка

В компьютерном программировании однострочная программа изначально представляла собой текстовый ввод в командную строку оболочки операционной системы, выполняющий некоторую функцию всего в одной строке ввода. В настоящее время однострочной программой может быть: выражение, написанное на языке оболочки; вызов интерпретатора вместе с исходным кодом программы для его выполнения; вызов компилятора вместе с исходным кодом для компиляции и инструкциями для запуска скомпилированной программы. Некоторые динамические языки сценариев, такие как AWK, sed и Perl, традиционно хорошо подходят для написания однострочных программ. Интерпретаторы оболочек, такие как Unix shell или Windows PowerShell, позволяют создавать мощные однострочные программы. Использование термина "однострочник" расширилось и теперь включает в себя исходный код на любом языке, выполняющий полезную задачу в одну строку.

История

Концепция однострочной программы была известна с 1960-х годов, со времени появления языка программирования APL. Благодаря своему лаконичному синтаксису и мощным математическим операторам, APL позволял представлять полезные программы несколькими символами. В 1970-х годах однострочные программы стали ассоциироваться с распространением домашних компьютеров и BASIC. В компьютерных журналах публиковались программы на различных диалектах BASIC. Некоторые журналы посвящали регулярные колонки исключительно впечатляющим коротким и однострочным программам. Слово "One liner" также дважды упоминается в указателе книги "The AWK Programming Language" (к книге часто обращаются как к TAPL). В ней описывается язык программирования AWK, являющийся частью операционной системы Unix. Авторы объясняют возникновение парадигмы однострочника своей повседневной работой на первых машинах Unix:

Обратите внимание, что это исходное определение однострочника подразумевает немедленное выполнение программы без какой-либо компиляции. Таким образом, в строгом смысле, однострочными могут считаться только исходные коды интерпретируемых языков. Однако это строгое понимание однострочника было расширено в 1985 году, когда IOCCC ввела категорию "Best One Liner" для C, который является компилируемым языком.

Примеры

Однострочники также используются для демонстрации различной выразительности языков программирования. Часто однострочники применяются для демонстрации навыков программирования. Регулярно проводятся конкурсы, чтобы выяснить, кто сможет создать самый выдающийся однострочник.

Основные

Одна строка BASIC обычно может содержать до 255 символов, а однострочные программы варьировались от простых игр до графических демонстраций. Один из наиболее известных демо-однострочников в разговорной речи известен как 10PRINT, написанный для Commodore 64:
10 PRINT CHR$(205.5+RND(1)); : GOTO 10

Python (англ.)

Выполнение однострочных команд непосредственно в командной строке Unix можно осуществить с помощью флага `cmd` Python (сокращенно `c`), что обычно требует импорта одного или нескольких модулей. Операторы разделяются точкой с запятой (`;`) вместо переносов строк. Например, чтобы вывести последнее поле длинного листинга Unix:
`ls -l | python -c "import sys; [sys.stdout.write(' '.join([line.split()[-1]])) for line in sys.stdin]"`

Windows PowerShell (полное обновление)

Поиск палиндромов в файле words.txt.
Получить содержимое файла words.txt | Где { $eq join $ [($length 1) 0] }

Семантика конвейеров в PowerShell позволяет реализовать сложные сценарии с помощью однострочных программ. Эта однострочная программа на PowerShell считывает список имен и значений из файла, разделенного запятыми, и возвращает сумму значений для каждого имени. ipcsv .\fruit.txt –H F,C | Group F | %{@{"$($Name)"=($Group|Measure-Object -Property C -Sum).Sum} | Sort-Object Value