
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.21] |
![]() |
|
Страницы: (32) « Первая ... 14 15 [16] 17 18 ... 31 32 ( Перейти к последнему сообщению ) |
Сообщ.
#227
,
|
|
|
Сообщ.
#228
,
|
|
|
Друзья что тут спорить. История выбрала победителя.
|
Сообщ.
#229
,
|
|
|
Цитата D_KEY @ Не надо ничего выворачивать. Ты еще про какой-нибудь цикл паука вспомни. Это не нужно. В крайнем случае напиши while True и break по условию. Будет тебе repeat...until Мне-то нахрен это все? Ты это расскажи ученику, если он спросит: "В структурном программировании есть термин "цикл с постусловием" (я уже читал). Почему в Паскале можно, в Си, Перле, Lua можно (я проверял), а в Питоне - нужно велосипедить, чтобы этого добится?. Нахрена мне такой язык для обучения?" И тут ты начнешь ему лить на уши то, что льешь о простоте и звездатости питона уже которую страницу. Но к обучению это не имеет ни малейшего отношения ![]() Потому, что они кроме программирования - насилуют рассово-правильным форматированием. Ты прикинь, если бы мне в С++ запретили Java-style расстановку фигурных скобок?! Я бы точно ссал кипятком. Ну а в Питоне ... там мне пофик на местных мазохистов ![]() Добавлено Цитата OpenGL @ Ну и что? Можно подумать, что цикл с постусловием необходимая сущность в программировании. Для целей обучения он должен быть, раз упоминается в разделах Структурного программирования. Добавлено Но там есть loop, который эту идиому эмулирует не "выворачивая мозги", т.е. без предварительного while(true). Добавлено Первое мое знакомство с программированием было на базе "Электроника МК-54". Парень показал, что в этой "коробочке" можно записать ряд команд, и они сами могут выполняться последовательно! И всякие условия в момент вычислений учитывать. Для меня это была - БОМБА!!! 1986г. Армия. Наряд на КПП ![]() ![]() Киляяя, заступай на дежурство!!! Я все, на сення наверное пост сдал ![]() |
![]() |
Сообщ.
#230
,
|
|
Цитата JoeUser @ Ты это расскажи ученику, если он спросит: "В структурном программировании есть термин "цикл с постусловием" (я уже читал). Почему в Паскале можно, в Си, Перле, Lua можно (я проверял), а в Питоне - нужно велосипедить, чтобы этого добится?. Нахрена мне такой язык для обучения?" "Это мелочи, и скоро ты сам убедишься, почему" ![]() Цитата JoeUser @ Потому, что они кроме программирования - насилуют рассово-правильным форматированием. Никто тебя им не насилует. Хочешь - ставишь отступы в 2 пробела, хочешь - в 4. А то, что ты не можешь в пределах одного блока написать с разными отступами наподобие этого ![]() ![]() if (something) { foo(); bar(); joe_user_is_wrong(); } минусом не является. Цитата JoeUser @ Для целей обучения он должен быть, раз упоминается в разделах Структурного программирования. Из второй части этой твоей фразы первая не следует. Цитата JoeUser @ Но там есть loop, который эту идиому эмулирует не "выворачивая мозги", т.е. без предварительного while(true). И что? loop точно так же эмулирует и while(...), и цикл по коллекции. Так что нужно или признать, что они лишние, или признать, что цикл с постусловием как отдельная сущность не обязателен. |
Сообщ.
#231
,
|
|
|
Т.е. Питон такое захавает?
![]() ![]() if (something) { foo( "11111111111111", "22222222222222" ) || Die(); bar(); joe_user_is_alpha(); } Добавлено Цитата OpenGL @ минусом не является потому как Питон сам минусом является ![]() |
Сообщ.
#232
,
|
|
|
Цитата esperanto @ Друзья что тут спорить. История выбрала победителя. Чувак, я уже 20 лет наблюдаю как история выбирает победителей, которые канут в лету. ![]() |
Сообщ.
#233
,
|
|
|
Цитата OpenGL @ И что? loop точно так же эмулирует и while(...), и цикл по коллекции. Так что нужно или признать, что они лишние, или признать, что цикл с постусловием как отдельная сущность не обязателен. Сначала появилось Структурное программирование, ну а потом уже Раст. СП - это фундамент множества языков, а Раст - это всего лишь попытка "перевернуть мир к лучшему". |
Сообщ.
#234
,
|
|
|
Цитата OpenGL @ Никто тебя им не насилует. Хочешь - ставишь отступы в 2 пробела, хочешь - в 4. А в один? А в три? А вообще выполнение двух функций в одной строке типа Цитата foo();bar(); |
Сообщ.
#235
,
|
|
|
Цитата Gonarh @ Чувак, я уже 20 лет наблюдаю как история выбирает победителей, которые канут в лету. Люто, бешено, плюсую! Они просто не знают ценность Перловского оператора "1;" ![]() |
Сообщ.
#236
,
|
|
|
Цитата JoeUser @ ![]() ![]() foo( "11111111111111", "22222222222222" ) || Die(); Ахах, перловка ![]() Добавлено Цитата JoeUser @ Они просто не знают ценность Перловского оператора "1;" ![]() Классы описывал? ![]() |
![]() |
Сообщ.
#237
,
|
|
Цитата JoeUser @ Т.е. Питон такое захавает? И не подавится Добавлено Цитата Gonarh @ А в один? А в три? А вообще выполнение двух функций в одной строке типа И в 1, и в 3. Чтобы в одной строке несколько функций вызвать, напиши их через запятую Добавлено Насколько я понимаю, 4 пробела это просто рекомендуемый стандарт, с которым, например, написана и стандартная библиотека. Основное же условие "внутри блока инструкции должны быть на одном уровне". Если это не так, то поправьте ![]() |
Сообщ.
#238
,
|
|
|
Цитата Gonarh @ *.pm'ы писал? Ага) Что-то типа этого: Скрытый текст ![]() ![]() package ConsultantPlusDocuments; require Exporter; @ISA = qw(Exporter); @EXPORT = qw(New Load LoadLines); sub New { my $type = shift; my $self = {}; bless $self; $self->{'FileName'} = shift; $self->{'FieldsText'} = (); $self->{'FieldsDesc'} = (); $self->{'FieldsNumb'} = (); bless $self; } sub Load { my $type = shift; my $self = {}; bless $self; $self->{'FileName'} = shift; $self->{'FieldsText'} = (); $self->{'FieldsDesc'} = (); $self->{'FieldsNumb'} = (); $self->ReadData(); bless $self; } sub LoadLines() { my $type = shift; my $self = {}; bless $self; $self->{'FileName'} = ""; $self->{'FieldsText'} = (); $self->{'FieldsDesc'} = (); $self->{'FieldsNumb'} = (); $self->LoadData(shift); bless $self; } sub Field() { my ($self,$num,$ret) = @_; $ret = $self->{'FieldsText'}{$num}; 1 while (chomp($ret)); return $ret } sub SetField() { my ($self,$num,$val) = @_; ${$self->{'FieldsText'}}{$num} = ${$val}; } sub SetFileDir() { my ($self,$val,$w) = @_; $w = $self->{'FileName'}; $w =~ s/(.*\/)(.+)/$2/; $w =~ s/(.*\\)(.+)/$2/; $self->{'FileName'} = $val.$w; } sub SetFileName() { my ($self,$val,$w) = @_; $w = $self->{'FileName'}; $w =~ s/(.*\/)(.+)/$1/; $w =~ s/(.*\\)(.+)/$1/; $self->{'FileName'} = $w.$val; } sub ReadData() { my ($self,$buf) = (shift); if (open(FD, $self->{'FileName'})) { $buf = join("",<FD>); close(FD); $buf =~ s/(\n\$\$\n\n)(.*)/$2/s; while ($buf =~ /\$(\d+)(\s+)(.+?)(\n)(.*?)\n(?=\$|\n\n-{60,}\n$|$)/s) { ${$self->{'FieldsText'}}{$1} = $5; ${$self->{'FieldsDesc'}}{$1} = $3; push @{$self->{'FieldsNumb'}}, ($1); $buf = $'; } } } sub LoadData() { my ($self,$buf) = @_; $buf = join("",@{$buf}); $buf =~ s/(\n\$\$\n\n)(.*)/$2/s; while ($buf =~ /\$(\d+)(\s+)(.+?)(\n)(.*?)\n(?=\$|\n\n-{60,}\n$|$)/s) { ${$self->{'FieldsText'}}{$1} = $5; ${$self->{'FieldsDesc'}}{$1} = $3; push @{$self->{'FieldsNumb'}}, ($1); $buf = $'; } } sub WriteData() { my ($self,$buf,$i,$w) = @_; if (open(FD, ">".$self->{'FileName'})) { $buf = "\n\$\$\n\n"; foreach $i (@{$self->{'FieldsNumb'}}) { ${$self->{'FieldsText'}}{$i} =~ s/(.*?)(\s*\Z)/$1/s; $buf .= "\$".$i." ".${$self->{'FieldsDesc'}}{$i}."\n".${$self->{'FieldsText'}}{$i}."\n\n"; $j++; } $buf .= "\n".("-" x 68)."\n"; seek(FD,0,0); truncate(FD,0); print FD $buf; close(FD); } } sub Build($@) { my ($self,$tpl,$i) = @_; foreach $i (@{$tpl}) { ${$self->{'FieldsText'}}{${$i}[0]} = ""; ${$self->{'FieldsDesc'}}{${$i}[0]} = ${$i}[1]; push @{$self->{'FieldsNumb'}},(${$i}[0]); } } sub DelRefs($%) { my ($L,%Del) = @_; my @W = split("",${$L}); my $Len = scalar(@W); my ($i,$first,$in,$no) = (0,1,0,0); for($i=0;$i<$Len;$i++) { if (($W[$i] eq " ") || ($W[$i] eq " ") || ($W[$i] eq " ")) { if ($first) { if ($W[$i] eq " ") { $in = 1; $W[$i] = " " if ($Del{$no} eq "1"); } elsif ($W[$i] eq " ") { $W[$i] = " " if ($Del{$no} eq "1"); $no++; } else { $W[$i] = " " if ($Del{$no} eq "1"); $no++; $first = 0; redo; } $first = 0; } else { if ($W[$i] eq " ") { return 0 if ($in); $W[$i] = " " if ($Del{$no} eq "1"); $in = 1; } elsif ($W[$i] eq " ") { return 0 unless ($in); $W[$i] = " " if ($Del{$no} eq "1"); $in = 0; $no++; } else { if ($in) { $W[$i] = " " if ($Del{$no} eq "1"); $in = 0; $no++; redo; } else { $W[$i] = " " if ($Del{$no} eq "1"); $in = 1; } } } } } ${$L} = join("",@W); return 1; } 1; |
Сообщ.
#239
,
|
|
|
Цитата OpenGL @ И в 1, и в 3. Чтобы в одной строке несколько функций вызвать, напиши их через запятую https://ideone.com/vVjFYP не выходит каменный цветок |
Сообщ.
#240
,
|
|
|
Цитата OpenGL @ И не подавится ![]() Вот так: ![]() ![]() foo( "11111111111111", "22222222222222" ) or die() Он выводит ![]() ![]() We are died :( JoeUser is wrong :( Но вот так: ![]() ![]() foo ( "11111111111111", "22222222222222" ) or die() Только: ![]() ![]() JoeUser is wrong :( И спрашивается хто из нас Вронг? ![]() |