parser

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

 

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

тут наложился тот факт, что ^вызов(выражение) передаётся, как выражение

Александр Петросян (PAF) 09.11.2007 21:25 / 09.11.2007 21:27

а не как его значение.
и действие ^выражение.inc()
приводит к
1) вычислению выражения
2) получается временная переменная типа double
3) мы эту временную переменную делаем inc
4) доходит дело до выдачи result
5) тут вычисление исходного выражения происходит ещё раз

один пример разобран здесь:
http://www.parser.ru/docs/lang/params.htm


другими словами:
в метод приходит ещё не вычисленное выражение, которое вычисляется столько раз, сколько происходит $обращение_к_параметру_метода

тут два раза обратились, два раза посчиталось.

код
$i($i+1)
убивает самовычисляющееся выражение, лежащее там при вызове метода, и помещает туда рабоче-крестьянский double. который после inc идёт в result, все довольны.


проиходящее — результат компромисса, на который я пошёл, проектируя передаваемые выражения.
я пытался сделать и нашим и вашим и просто.

эта шероховатость уже обсуждалась.