parser

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

 

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

Поведение is junction

G_Z 24.10.2015 04:11

Все уже привыкли к ограничениям junction и его «взрыву в руках».
Но, есть мнение, выполнение переданного кода про проверке на is junction и невыполнение при такой же проверке переданной ссылки на метод — странно.

Зачастую нужно проверить, передан ли код параметром и если нет — выполнить некое действие по умолчанию.
@test[object;code]
^if($code is junction){
	$result[]
}{
	$result[]
}
Код выполняется, его результат string — проверка не проходит.

Конечно, это можно обойти костылём с *args:
@test[object;*args]
^if(^args.contains[0]){
	$result[]
}{
	$result[]
}
но костылём.

Быть может, стоит привести is junction к общему поведению и в случае кода, и в случае ссылки?
Тем более, что код может быть довольно долгоживущим, передаваться между методами и даже модифицироваться без выполнения.
А проверить существует ли он невозможно.