Re: Нужен ли bash
Hello!
> а чем шелл от языка программирования отличается?
Да я и затеял топик, чтоб выяснить это. Пока что получается, что если язык
программирования позволяет легко вызывать внешние программы, он может
заменить шелл.
> AP> А зачем их так много?
> ну не так уж и много, часто используемых десяток едва наберется
length или len для длины строки, llength для длины списка понимаю. Набор
кракозябл - нет. А уж десяток подобных комбинаций тем более слишком много.
> AP> Прямой слэш я привык эскейпить, хотя это и не обязательно. {} можно
> заменить AP> на "" - это пустая строка. Ну и чуть по-другому записать
> AP> set replist {to: "" :CV: "" ( "" ) "" : "" , "" / "" -> "" $ "" [ "" ]
> ""} AP> Так вот понятнее?
> неа (честно, не флейма ради а именно честно) :)
А как понятнее? Если список с пробелами непонятен, так можно через запятую
написать. Или попарно по строкам разбить.
> AP> Хорошие комментарии не спасут плохой код, зато хороший код может не
> иметь AP> комментариев.
> хороших коментариев при плохом коде не встречал
> хорошего неоткоментированного кода тоже не видал
Загляните в исходники, скажем, sqlite - увидите. Вот пример:
/*
** SQL function to compress content into a blob using libz
*/
static void compressFunc(
sqlite3_context *context,
int argc,
sqlite3_value **argv
){
int nIn, nOut;
long int nOut2;
const unsigned char *inBuf;
unsigned char *outBuf;
assert( argc==1 );
nIn = sqlite3_value_bytes(argv[0]);
inBuf = sqlite3_value_blob(argv[0]);
nOut = 13 + nIn + (nIn+999)/1000;
outBuf = malloc( nOut+4 );
outBuf[0] = nIn>>24 & 0xff;
outBuf[1] = nIn>>16 & 0xff;
outBuf[2] = nIn>>8 & 0xff;
outBuf[3] = nIn & 0xff;
nOut2 = (long int)nOut;
compress(&outBuf[4], &nOut2, inBuf, nIn);
sqlite3_result_blob(context, outBuf, nOut2+4, free);
}
Что тут нужно комментировать? :-) Достаточно прочитать описание алгоритма
сжатия и код понятен вплоть до значений констант.
Best regards, Alexey.
Reply to: