moby

(no subject)

— Спорим, что этот скрипт можно написать в одну строку?
Любой скрипт можно написать в одну строку.
Даёшь однострочные программы!
Ну, скажем - не на любом языке .)
Re: Reply to your post...
На скриптовых языках обычно можно. (В ответ на притянутый пример
скриптового языка, в котором этого сделать нельзя, я могу привести
примеры, в которых под словом "строка" понимается нечто иное.)
Re: Reply to your post...
Определение скриптового языка размыто и скорее интуитивно. Фортран к таким
языкам точно не относится.
Re: Reply to your post...
Кстати, вот и сформулировался аргумент, подтверждающий мою точку зрения:
жёсткие требования к форматированию исходных текстов имеют только старые
языки вроде фортрана, а большинство скриптовых языков появились позже.
Re: Reply to your comment...
В питоне можно писать структурные конструкции в одну строку, хотя это и не
рекомендуется, поскольку не в духе языка.
Re: Reply to your comment...
к сожалению, можно. я как раз недавно пришел к выводу, что (несмотря на то, что с первого взгляда кажется наоборот) лучше запрещать это на уровне правил языка. как раз чтобы было нельзя написать программу в одну строку.
А когда надо вызвать скриптик из командной строки или прямо из текстового редактора? В файл его сохранать, что ли?
Reply to your post...
Обычно можно тем или иным способом вызвать с командной строки и многострочный скрипт. Другое дело, что не все скриптовые языки в принципе предназначены для подобного использования. Perl -- подходящий язык для one-liner'ов. Python -- нет.

Переделовать интерфейс shell и vim?
Что нибудь более дешевое есть?
имхо, если вам нужно написать большой скрипт в одну строку, значит вы делаете что-то не так. это примерно как какать себе на голову - так же удобнои примерно так же полезно.
поменять интерфейс в редакторе - вообще плевое дело. для шелла можно использовать чтение скрипта через стандартный ввод.
Re: Reply to your post...
На Python нельзя. Что снижает его ценность как скриптового.
В suite входит NEWLINE, а suite входит в if_stmt.
То есть если требуется if, то его придется разбивать на несколько строк.
Без if-ов писать не срьезно - может в строчку и влезет, но будет очень длинным.

Я слышал про препроцессоры, которые позволяют в одну строчку написать, но они не стандартны.
То же самое для while и для описания функции. То есть ни рекурсии, ни цикла не написать.

Конечно можно написать набор комбинаторов, и писать в стиле APL (примерно так :-))). Но это будет уже не Python...
Reply to your comment...
Я как раз имел в виду, что можно писать так:

x=1; while (x>0) x==1 ? одно, x=куда_дальше : x==2 ? второе, x=куда_дальше : x==3 ? третье, x=куда_дальше ...

Это будет в одну строку, и не-помню-кем доказано, что этим способом можно записать любой алгоритм.

Написать так нельзя, так можно только извратиться.

А доказано кажется Дейкстрой.
Re: Reply to your comment...
Сам изначальный пост предполагает извращение.
Имеет смысл писать программу в одну срочку если она достаточно проста, требуется ограниченное количество раз и имеется простой интерфейс для этого. Я достаточно часто (наверно раз в неделю) пишу какой-нибудь однострочный скрипт на Perl, запускаемый через -e или из редактора vim. И не считаю это извращением :-)).
Re: Reply to your comment...
Конечно, для некоторых программ это имеет смысл. Но в посте-то было
написано про "любой" скрипт. Писать так сложный скрипт -- это, конечно, из
разряда вещей, делаемых просто ради доказательства самой возможности это
делать.
и писать в стиле APL (примерно так :-)
восхитительно! неужели еще нечитабелньее перла? =)
Дарю определение скриптового языка: "Такой язык, программы для которого можно написать в одну строку". Тогда точно никто не докопается. :)
На ActionScript, насколько я знаю, нельзя написать что-либо стоящее в одну строку. Хотя, судя по названию, он должен быть причислен к скриптовым языкам.
Справка: ActionScript - язык сценариев, положенный в основу технологии Flash.