Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / $INCREMENT / 7 сообщений из 7, страница 1 из 1
17.01.2007, 17:24
    #34262512
Stpl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$INCREMENT
а есть какоето разумное объяснение почему для увеличения Х нельзя писать просто
Код: plaintext
$INCREMENT(X)
вместо этого результат надо кудато девать, например
Код: plaintext
SET dummy=$INCREMENT(X)

спрашиваю т.к. это наверное будет касаться и других мест
...
Рейтинг: 0 / 0
17.01.2007, 17:37
    #34262565
Sergei Obrastsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$INCREMENT
Stplа есть какоето разумное объяснение почему для увеличения Х нельзя писать просто
Код: plaintext
$INCREMENT(X)
вместо этого результат надо кудато девать, например
Код: plaintext
SET dummy=$INCREMENT(X)

спрашиваю т.к. это наверное будет касаться и других местСмотря в каком контексте. Конечно просто "$i(X)" без команды работать не будет, а вот "write $i(X)" уже да.
А вообще бы не рекомендовал использовать, в глаза не бросается, логически неявна,
все ж таки "set X=X+1" лучше. Я уже молчу про выкрутасы типа
Код: plaintext
1.
set ^ttt($i(X),$i(Y))=$i(Z)
...
Рейтинг: 0 / 0
17.01.2007, 17:38
    #34262573
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$INCREMENT
Stplа есть какоето разумное объяснение почему для увеличения Х нельзя писать просто
Код: plaintext
$INCREMENT(X)
вместо этого результат надо кудато девать, например
Код: plaintext
SET dummy=$INCREMENT(X)

спрашиваю т.к. это наверное будет касаться и других мест

Нет никакого разумной причины так не делать. $I используется,в том числе, для счетчиков ID, не откатывается по ролбэку, - и в структуре это выражение вида $INCREMENT(X). Не строка кода, а выражение - которе должно вернуть значение.

А для простого инкримента никто не мешает set x=x+1 использовать.
...
Рейтинг: 0 / 0
17.01.2007, 17:53
    #34262645
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$INCREMENT
Stplа есть какоето разумное объяснение почему для увеличения Х нельзя писать просто
Код: plaintext
$INCREMENT(X)
вместо этого результат надо кудато девать, например
Код: plaintext
SET dummy=$INCREMENT(X)

спрашиваю т.к. это наверное будет касаться и других мест
В М исполняется команда а не выражение, а $i() это выражение.
Если результат не нужен, можно писать просто i $i(), но это взводит $t
...
Рейтинг: 0 / 0
17.01.2007, 17:56
    #34262658
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$INCREMENT
Sergei Obrastsov Stplа есть какоето разумное объяснение почему для увеличения Х нельзя писать просто
Код: plaintext
$INCREMENT(X)
вместо этого результат надо кудато девать, например
Код: plaintext
SET dummy=$INCREMENT(X)

спрашиваю т.к. это наверное будет касаться и других местСмотря в каком контексте. Конечно просто "$i(X)" без команды работать не будет, а вот "write $i(X)" уже да.
А вообще бы не рекомендовал использовать, в глаза не бросается, логически неявна,
все ж таки "set X=X+1" лучше. Я уже молчу про выкрутасы типа
Код: plaintext
1.
set ^ttt($i(X),$i(Y))=$i(Z)

В М с выкрутасами как раз все железно, никаких неопределенных поведений, все вычисляется слева направо. Сначала инкремент X, потом Y, потом Z, потом присвоение.
...
Рейтинг: 0 / 0
17.01.2007, 17:58
    #34262665
Stpl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$INCREMENT
ну яВ М исполняется команда а не выражение, а $i() это выражение.
О, точно! спасибо!
...
Рейтинг: 0 / 0
17.01.2007, 18:08
    #34262703
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$INCREMENT
ну яЕсли результат не нужен, можно писать просто i $i(), но это взводит $t
Есть еще вариант без побочного эффекта с $t - вписать $i() в постусловие како-нибудь команды так чтобы оно никогда не было верным, например
w:$i(glvn)'=""
Поскольку $i всегда вернет число, оно не будет пустой строкой. А при вычислении постусловий $t не меняется.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / $INCREMENT / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]