parser

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

 

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

Есть промежуточный вариант, как в Python ^method[*args]

andylars 30.01.2016 13:38 / 30.01.2016 13:49

Начиная с версии Parser 3.4.1, можно писать:

@имя[параметр1;параметр2;*параметры]
тело

или просто
@имя[*параметры]
тело

пример:
@main[]
^call[a;b;c]

@call[p;*args]
p=$p
^args.foreach[k;v]{
   $k=$v 
}[^#0A] 

Выведет: 
p=a 
0=b 
1=c 
# странно подсветка кода сломалась из-за (*) в параметрах...
P.S:
Лично я почти везде уже использую hash, не столько даже в угоду кол-ву параметров, сколько из-за произвольного порядка и главное именования(!) параметров, что очень облегчает разработку и отладку.
@main[]
  ^func[
     $.Domain[mysite.ru]
     $.Url[home.html]
   ]

@func[_p][locals]
  ^if(!def $_p.Proto){$_p.Proto[http^:]}
  $result[Your link is $_p.Proto//$_p.Domain/$_p.Url]


# чтобы случайно переписать или перетереть локальный хеш _p чем-то извне
# для этого надо специально постараться