Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет kouzdra ([info]kouzdra)
@ 2014-10-01 16:00:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
А вот кстати был в MACRO-11
Такой забавный оператор IF:

.if  condition</tt> 
...
.iff 
...
.endc


.iff это if false в смысле - почти else, если бы к нему не прилагись еще

.ift - if true

и .iftf - if false or true.

Кои может было использовать сколько угодно раз.

Я это вспомнил смотря на довольно часто встречающийся кусок кода:
	if a.NodeProc != nil &&  node != nil { a.NodeProc.Before (node) }
	fn ()
	if a.NodeProc != nil &&  node != nil { a.NodeProc.After  (node) }
В стиле MACRO-11 оно бы выглядело как-то так:
if a.NodeProc != nil &&  node != nil
    a.NodeProc.Before (node)
iftf 
	fn ()
ift
	a.NodeProc.After  (node) 
endc

Много думал - стоило ли бы это украшательство возрождения и как оно должно лучше выглядеть "в современном виде"


(Добавить комментарий)


(Анонимно)
2014-10-01 16:17 (ссылка)
Идея не писать одно и то же условие несколько раз конечно привлекает.

Недостаток --- путанность вложенных конструкций (но это общий недостаток многих вещей, включая всякие скобки).

Чтобы вложенные конструкции не слишком пугали и т.п. неплохо было бы какой-то идентификатор условия, что делает ситуацию слишком похожей на введение булевой переменной.

Ну и для тех случаев, когда условие надо вычислять заново, не подойдёт.

То есть, подойдёт, но только если эта конструкция будет сокращением как раз для вычисления условия каждый раз заново (т.е. аналог не булевой переменной, а макроса, например).

(Ответить)


[info]pizelks
2014-10-01 23:40 (ссылка)
Лучше тогда вернуть switch-case.

(Ответить)


[info]qwerty
2014-10-02 11:10 (ссылка)
По-моему, ненужный наворот. Ему есть, кстати, странный аналог в системе инструкций ARM/Thumb.

(Ответить) (Ветвь дискуссии)


[info]tzirechnoy.livejournal.com
2014-10-02 12:40 (ссылка)
Почему -- Thumb? По-моему, и в оригинальном ARM32 такжэ.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]qwerty
2014-10-02 13:01 (ссылка)
Нет, в ванильном ARM'е у каждой инструкции свой предикат.

(Ответить) (Уровень выше)