parser

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

 

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

Не будет никаких трудностей...

Sumo 01.01.2014 20:40 / 01.01.2014 20:43

... если не забыть пробросить контекст из внутреннего замыкания во внешнее:
@main[]
  $h[^for[i](1;100){$.[$i][^math:random(1000)]}]
  $h[^hashUtils:selectOdd[$h;k;v]($v < 450)]
  ^h.foreach[k;v]{$k => $v}[^#0A]

@CLASS
hashUtils

@selectOdd[aHash;aKeyVar;aValueVar;aConditions][locals]
  $result[
    ^select[$aHash;k;v]{
      $caller.[$aKeyVar][$k]
      $caller.[$aValueVar][$v]
      ^if($k % 2 && $aConditions){1}{0}
    }
  ]

@select[aHash;aKeyVar;aValueVar;aConditions][locals]
  $result[^hash::create[]]
  ^aHash.foreach[k;v]{
    $caller.[$aKeyVar][$k]
    $caller.[$aValueVar][$v]
    ^if($aConditions){
      $result.[$k][$v]
    }
  }