Между делом на работе, когда позволяет время, пишем свой движок нереляционной базы данных, в которой связи построены непредопределенным образом, наподобие свободных человеческих ассоциаций. Т.е. ее поведение непредсказуемо и зависит в основном от накопленного опыта. Нам за это не платят, делаем только «ради науки», не ожидая никаких конкретных
(
Read more... )
А на каком языке экспериментируете? Обычно для таких вещей функциональщину предпочитают...
Reply
Reply
Я сам обманываться рад.(с)
:)
Жёстко у вас там с динозаурусами, однако! :(
Reply
вообще, я уже как-то размышлял о такой "БД". но пока ничего конкретно полезного на ум не приходит. а чем там может функциональщина помочь?
Reply
Reply
Reply
Reply
( ... )
Reply
Reply
я последний раз использовал goto году этак в 94-м. если не раньше. там еще тогда появилась в бейсике интересная разновидность GOSUB ))
а сейчас пока не нужен.
Reply
Reply
Reply
int some_foo(int some_arg)
{
int ret_val = 0;
char* text = (char*)malloc(SOME_SIZE);
FILE* fi = fopen("path/to/file", "r");
...
if (!condition1) {
/* return -1; */
ret_val = -1;
goto ret_label;
}
...
if (!condition2) {
/* return -2; */
ret_val = -2;
goto ret_label;
}
...
ret_label:
free(text);
fclose(fi);
return ret_val;
}
В принципе, иногда я в таких случаях эмулирую goto через обертывание тела функции (до ret_label) в фальшивый цикл do ... while(false) и вместо goto ставлю break :) Но это может запутать еще больше читателя исходников.
Reply
if(!condition1){
ret_val = -1;
}
else{
if(!condition2){
...
}
}
free(text);
fclose(fi);
return ret_val;
про break читал, что, мол запутывает. на мой взгляд в редких случаях выхода и невложенного цикла он вполне хорошо читаем. конечно, если конструкцию усложнять, то нужно сокращать безусловные переходы.
Reply
Reply
Reply
Leave a comment