parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Спасибо. Но где все-таки контекст?

Саян 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}
    }
  ]