| Новости | 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}
}
]