parser

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

 

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

Странности с junction и hash

G_Z 02.03.2014 19:26 / 02.03.2014 19:29

@main[]
$h[
	$.1[$.name[a]]
	$.3[$.name[b]]
	$.4[$.name[c]]
]
$h2[^rehash[$h;k;v]{$.[$v.name][$k]}]

@rehash[hash;key;value;code]
$result[^hash::create[]]

^hash.foreach[k;v]{
	$caller.$key[$k]
	$caller.$value[$v]

	^result.add[$code]
}
Ошибка hash may not be overwritten with hash, store it to variable instead, ругается на $h2[^rehash[$h;k;v]{$.[$v.name][$k]}].

При этом, работает, если перефразировать обругиваемый фрагмент так:
$h2[^rehash[$h;k;v]{
	$_h[$.[$v.name][$k]]
	$_h
}]
И ещё более простое, но не менее странное:
@main[]
$h[^h{$.a[b]}]

[$h.a]

@h[j]
$result[$j]
— работает.
@main[]
$h[^h{$.a[b]}]

[$h.a]

@h[j]
$result[^hash::create[]]
^result.add[$j]
— не работает, ошибка та же — hash may not be overwritten with hash, store it to variable instead.

Подозреваю, что причина в hash.add.