Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Саян 03.01.2014 12:39
действительно спасибо: я понял, что выражение выполняется в контексте вызывающего, но должно итерироваться из вызываемого. И это единственная хорошая практика. Но пока непонятно с контекстом выражения, о чем я и спрашивал. Если в вашем примере модифицировать методов одним из следующих способов, выражение всегда получается ложным:@selectOdd[aHash;aKeyVar;aValueVar;aConditions][locals] $result[ ^select[$aHash;k;v]{ $caller.[$aKeyVar][$k] $caller.[$aValueVar][$v] $aConditions($k % 2 && $aConditions) ^if($aConditions){1}{0} } ]
@selectOdd[aHash;aKeyVar;aValueVar;aConditions][locals] $extra($k % 2) $result[ ^select[$aHash;k;v]{ $caller.[$aKeyVar][$k] $caller.[$aValueVar][$v] ^if($extra && $aConditions){1}{0} } ]