Форум программистов, компьютерный форум, киберфорум
Perl
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
2 / 2 / 0
Регистрация: 30.08.2013
Сообщений: 26
1

If($user!~/регул.выражение/) - как объясняется это условие?

02.09.2013, 05:05. Показов 3516. Ответов 31
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сооздал тему для тупых вопросов! потому как начал изучать перл, и многие вещи мне не понятны.
Вопрос1: if($user!~/регул.выражение/) - как объясняется это условие?
Вопрос2: my $var - как действует эта my для переменных?
Вопрос3: if($db->numrows && !$students ) - как объясняется это условие?
Вопрос4: for(param('pig')) {} -что это за for такой? вроде же цикл но условие не понятно мне.
Вопрос5: есть человек который может помочь разобраться в большом файле что? куда? откуда?

Добавлено через 1 час 14 минут
на Вопрос1: ответ найден!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.09.2013, 05:05
Ответы с готовыми решениями:

Как это объясняется с точки зрения логики предметной области?
Имеется база данных с школьников, с предметами, оценками. Когда задается условие отбора 4 or 5 в...

Как перевести это математическое выражение в выражение понятное для компилятора?
вот пример: a=5*atan(x)-(1/4)*acos(x); b=(x+3*abs(x-y)+pow(x,2))/(abs(x-y)*z+pow(x,2));

Написать λ -выражение, описывающее условие, которое проверяет список и выдает истину, если выполняется условие
Здравстуйте! Решите, пожалуйста, задачу на Lisp, не понимаю функциональный язык( А лабороторные...

Как записать это условие
•Столбец «Стоимость» вычисляется по условию: от 1 до 10 суток – 100% стоимости, от 11 до 20 суток...

31
418 / 178 / 27
Регистрация: 11.03.2018
Сообщений: 764
14.05.2019, 12:13 21
Author24 — интернет-сервис помощи студентам
Строго говоря, мой пример выше тоже неудачный, поскольку остаётся непонятным, зачем тут использовать
именно local, а не, например, my. ( и об этом же написал Breetonia )

Вот так уже понятнее зачем

Perl
1
2
3
4
5
6
7
8
our $buf;
 
{ 
  local $/ = undef;
  $buf = readline;
}
 
print $buf;

потому что сказать my $/ = undef нельзя.
0
2304 / 1063 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
14.05.2019, 12:23 22
Цитата Сообщение от bidstrup Посмотреть сообщение
Вот так уже понятнее зачем
Цитата Сообщение от bidstrup Посмотреть сообщение
потому что сказать my $/ = undef нельзя.
Пример ещё хуже. Это какие-то частные случаи Perl-а, которые не имеют отношение к сути динамического связывания. И никак не дают понять, для чего можно их использовать и как это работает.
0
418 / 178 / 27
Регистрация: 11.03.2018
Сообщений: 764
14.05.2019, 12:32 23
Цитата Сообщение от nullxdth Посмотреть сообщение
Пример ещё хуже. Это какие-то частные случаи Perl-а
Частные случаи Perl??
Ты не забыл, мы про Perl тут и разговариваем, а не про Lisp.

Цитата Сообщение от nullxdth Посмотреть сообщение
. И никак не дают понять, для чего можно их использовать и как это работает.
Всё с точностью до наоборот.
Я показал классический способ использования local по отношению к глобальной переменной $/,
которую пользует библиотечная функция readline. По выходу из лексической области видимости
$/ восстанавливается. И my тут использовать не получится.
0
2304 / 1063 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
14.05.2019, 12:37 24
Цитата Сообщение от bidstrup Посмотреть сообщение
Частные случаи Perl??
Именно.
Цитата Сообщение от bidstrup Посмотреть сообщение
Ты не забыл, мы про Perl тут и разговариваем, а не про Lisp.
Я тут про динамические связывания говорил, а это общая концепция.
Цитата Сообщение от bidstrup Посмотреть сообщение
Всё с точностью до наоборот.
Я показал классический способ использовани
Из разряда: my воткнуть не получается, давайте воткнём local, авось заработает Вся суть Perl фанбоев - им не нужна суть вещей и как использовать те или иные вещи. Только хаки, только бы сделать абы как
Поэтому и говорю:
Цитата Сообщение от nullxdth Посмотреть сообщение
Dynamic scoping в Perl пришёл из Lisp, но в отличие от последнего редко используется perl-кодерами (вероятно, ввиду низкой образованности основной массы perl-овиков).
0
418 / 178 / 27
Регистрация: 11.03.2018
Сообщений: 764
14.05.2019, 12:49 25
nullxdth, жёлтые кружочки, 'пафос', 'фанбоев' и прочие обобщения оставь, pls, для своих экзерсисов в 'Священных войнах'. Здесь же ты пока абсолютно не справляешься с темой и приводишь неудачные ( по твоему же собственному признанию ) примеры использования local.
0
2304 / 1063 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
14.05.2019, 12:57 26
Цитата Сообщение от bidstrup Посмотреть сообщение
Здесь же ты пока абсолютно не справляешься с темой и приводишь неудачные ( по твоему же собственному признанию ) примеры использования local.
Ну куда уж мне до твоих-то примеров Ты вместо того, чтоб бесполезно возмущаться, книги почитай - скилл подтяни. А то так и останешься на уровне "классических способов использования в Perl"
0
418 / 178 / 27
Регистрация: 11.03.2018
Сообщений: 764
14.05.2019, 13:07 27
Так покажи свой подтянутый 'скилл'. Приведи адекватный 'скиллу' пример.

И можешь не спешить, подумай, полистай те же книги. Я до пятницы совершенно свободен.
0
2304 / 1063 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
14.05.2019, 13:11 28
Цитата Сообщение от bidstrup Посмотреть сообщение
Так покажи свой подтянутый 'скилл'. Приведи адекватный 'скиллу' пример.
Зачем бы мне это нужно было? Я вон элементарный пример с map-ом написал, так ведь ты и его не понял.
0
418 / 178 / 27
Регистрация: 11.03.2018
Сообщений: 764
14.05.2019, 13:18 29
Элементарный пример с map-ом ты сам признал неудачным.

Добавлено через 4 минуты
"Я вон элементарный пример с map-ом написал, так ведь ты и его не понял"

Навеяло:
Н.НосовС тех пор Незнайка перестал играть на трубе.
— Моей музыки не понимают, — говорил он. — Ещё не доросли до моей музыки.
0
2304 / 1063 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
14.05.2019, 14:43 30
Цитата Сообщение от bidstrup Посмотреть сообщение
Элементарный пример с map-ом ты сам признал неудачным.
Он неудачен исключительно лишь по причине, что связывание $arg не имеет на практике смысла, для единственного аргумента используется $_. Ну и map есть в стандартной библиотеке.
Вот более удачный и идиоматичный пример использования динамический связываний с т.з. Perl:
Perl
1
2
3
4
5
6
7
8
9
10
11
12
13
sub fold(&$@) {
 
    my ($fn, $x, @xs) = @_;
    my ($y, @ys) = @xs;
 
    local $a = @ys ? fold($fn, $x, @ys) : $x;
    local $b = $y;
 
    $fn->($a, $b);
};
 
# fold {$a + $b} 0, (1..3)  ==  fold {$_[0] + $_[1]} 0, (1..3)
# fold {$a * $b} 1, (1..3)  ==  fold {$_[0] + $_[1]] 1, (1..3)
Ну что толку касательно тебя. Ты не понял тот пример - не поймёшь и этот. Ну может кто читать будет компетентнее - будет полезно.
0
418 / 178 / 27
Регистрация: 11.03.2018
Сообщений: 764
14.05.2019, 19:30 31
Цитата Сообщение от nullxdth Посмотреть сообщение
Ну что толку касательно тебя. Ты не понял тот пример - не поймёшь и этот.
Попробуй вспомнить, что я тебе рассказывал про привычку священно воевать.

Теперь по вновь приведённому коду:
Убираем local

Perl
1
2
3
4
5
6
7
8
9
10
11
12
13
sub fold(&$@) {
 
    my ($fn, $x, @xs) = @_;
    my ($y, @ys) = @xs;
 
    $a = @ys ? fold($fn, $x, @ys) : $x;
    $b = $y;
 
    $fn->($a, $b);
};
 
# fold {$a + $b} 0, (1..3)  ==  fold {$_[0] + $_[1]} 0, (1..3)
# fold {$a * $b} 1, (1..3)  ==  fold {$_[0] + $_[1]] 1, (1..3)
И получаем тот же результат. Что понятно. Точнее, мне понятно.
А почему тебе непонятно?

Переменные $a и $b изменили своё значение ? Ясен пень, изменили.

И если обьявить их с помощью local, то они первоначальное значение, ясен пень, восстановят.
Но чтобы продемонстрировать данный эффект достаточно простого примера, который я уже приводил
Perl
1
2
3
4
$a =1; $b = 2;
{ local ($a,$b) = 100,200; }  
 
print "$a $b";
Output: 1 2
0
2304 / 1063 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
14.05.2019, 19:50 32
Цитата Сообщение от bidstrup Посмотреть сообщение
Но чтобы продемонстрировать данный эффект
С эффектом мы вроде разобрались в предыдущих постах. Ты же ныл привести хороший пример использования. Я - привёл.

Добавлено через 2 минуты
Цитата Сообщение от bidstrup Посмотреть сообщение
И получаем тот же результат.
Действительно! В первом случае с динамическими связываниями написан безопасный код без side effect-ов. Во втором случае петушатся значения глобальных переменных $a и $b. Никакой разницы!
1
14.05.2019, 19:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2019, 19:50
Помогаю со студенческими работами здесь

Как упростить это выражение?
Как упростить выражение, я нашел общее кратное дробей и привел их к одному знаменателю, а как...

Как записатьь это выражение на с++?

Как вычисляется это выражение?
Я только начала изучать js и у меня появился вопрос. var a = 1, b = 1, c, d; c = ++a;...

Как прочитать это выражение?
помогите пожалуйста разобраться. (f(x))(y)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru