Вверх ↑
Администрация
Ответов: 15295
Рейтинг: 1519
#1: 2007-07-11 16:20:27 ЛС | профиль | цитата
Galkov писал(а):
Т.е., однопроходных возможностей я совсем не понял....

примерно так:

func doStrCat()
  fvar(s1,s2)
s1 = Str1
s2 = Str2
if( isVolatile(s1) or isVolatile(s2) )
println(buf, ' := ', s1 & s2, ';')
event(onStrCat, volatile(buf))
else
event(onStrCat, s1 & s2)
end
end

собственно реализуем весь этот код в lng как метод буферизации данных в случае наличия Volatile и получаем:
func doStrCat()
  fvar(s1,s2)
s1 = Str1
s2 = Str2
event(onStrCat, lng.bufIfVolatile(s1 & s2))
end

либо тоже самое, но в хабе:
func doEvent()
  fvar(buf)
buf = lng.bufIfVolatile(_data_)
for(...)
ebent(onEvent, buf)
end
end
карма: 27
0