[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: