|
|
ru.website- RU.WEBSITE ------------------------------------------------------------------- From : Serge Shikov 2:5020/400 14 Mar 2001 12:30:03 To : All Subject : Re: Формирование картинки -------------------------------------------------------------------------------- Eugene A Belousov wrote: > > > > > > > > Hо набор закорючек, оказывающийся программой, несколько > отталкивает, > > > > > > > в то время как php позволяет решать большинство повседневных > задач. > > > > > > М-м-м, закорючки - это в первую очередь _твой_ стиль. > > > > > Может быть, но все-таки, чем компактнее и лаконичнее код, > > > > > тем больший объем комментирования ему требуется. > > > > Так тебя же язык не заставляет писать лаконично. Он это _позволяет_. > > > Структура языка к этому подталкивает. > > Hу тогда и C к этому подталкивает - там же {} вместо begin/end ;-) > Если утрировать, то в си выражение a+b не возвращает значение в > предопределенную переменую, в отличие, например, от perl, postscript или > ассемблера. Ага. И это очень плохо! > А {} роли не играют, так как при нормальном стиле программирования > роль "визуальной" граница блока играет отступ ;) Hо тогда ты вообще говоришь о семантике - потому что возврат значения - это она самая. > > > Как его синтаксис, так и идеология выглядит несколько необычно для > > > традиционного процедурного языка. > > Синтаксис у него чисто сишный, плюс регулярные выражения + кое-что из > > шелла. Чего необычного-то? Аналогичный синтаксис еще у десятка языков > > наблюдается - EXEC, EXEC 2, sh, ksh и прочие. Все совершенно > > процедурные, даже без примесей. > Да? > ---------------- > die "Can't cd to spool: $!\n" unless chdir '/usr/spool/news'; Это единственное кривое место, которое мне самому не нравится - возможность переставлять условие и действие в if/unless. Впрочем, никто не заставляет - перепиши как: if(!chdir('/usr/spool/news')) die "Can't cd to spool: $!\n"; > ---------------- > while (<>) {...} чисто сишный синтаксис while, а что? > ---------------- > /^Subject:/ регулярное выражение. У них свой синтаксис, совершенно отдельный. > ---------------- > tr/a-z/A-Z/ снова регулярное выражение. А что, ты бы предпочел translate(/a-z/,/A-Z/)? И какая собственно разница, кроме того, что tr - это оператор, и можно написать например так: $a=~ tr/a-z/A-Z/ со всеми вытекающими, а функции еще параметр $a пришлось бы приделать? А уж во что это выльется, если надо tr к массиву применить, мне и писать неохота. У тебя это выльется в цикл, очевидно. > ---------------- > $_ = 'abcdefghi'; > /def/; И опять оно же. Причем это легко можно записать в более читабельном виде, особенно если понять идею, которая из данного контекста неочевидна. > print "$`:$&:$'\n"; # prints abc:def:ghi > ---------------- Три специальные переменные. Ты бы предпочел три длинных имени функции? > > это какой синтаксис? сишный? Да, в помеси с sh для имен переменных. Чего сложного-то? Все что начинается с $, % и @ - переменные, это что, сложно запомнить? Более того, @a - это массив, а $a[1] - скаляр, элемент массива @a, и как всякий скаляр - он начинается с $. Весьма логично, если подумать. Все дело в том, что эти все примеры - в основном изврат, для демонстрации возможностей. --- ifmail v.2.15dev5 * Origin: home (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.website/2825e9290c6b.html, оценка из 5, голосов 10
|