crypt of decay - понравилось [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

понравилось [Jun. 27th, 2011|05:40 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
у Вирта в Oberon07 забавная конструкция:
WHILE cond0 DO body0
ELSIF cond1 DO body1
[ELSIF condX DO bodyX]*
END

думаю, очевидно, как работает. по нраву. хочу такую же в другие императивные языки.
Linkmeow!

Comments:
[User Picture]
From:[info]pilpilon
Date:June 27th, 2011 - 05:18 pm
(Link)
типа
while (1){ if(cond0){ } else if ( cond1){ } else break; }
прямь вот как отдельную конструкцию - да надо ли?
[User Picture]
From:[info]ketmar
Date:June 27th, 2011 - 05:25 pm
(Link)
надо ли. во-первых, изящней. во-вторых, break выпилен нахуй на ненадобностью.
From:[info]max630.net
Date:June 27th, 2011 - 05:48 pm
(Link)
Мне не очевидно, по cond1, cond2 цикл продолжается или завершается? Если первое то нахуя? Если второе, то где-то было (перл?). И я как-то придумывал язык, там было while () {} else () {}, хорошо для обработки ошибок.
From:[info]max630.net
Date:June 27th, 2011 - 05:54 pm
(Link)
то есть else без условия, конечно
[User Picture]
From:[info]ketmar
Date:June 27th, 2011 - 06:01 pm
(Link)
да очевидно, в общем-то. щёлкает по условиям, пока не наступит на истинное. как наступило — выполняет его часть «DO» и начинает всё сначала. если ни одно не щёлкнуло — цикл закончился.

собственно, введено для того, чтобы выкинуть к ебеням break (что и было сделано). а else в данном плане лишнее, потому как ничего выкинуть не позволяет. единственно, чем хорошо — иногда позволяет избавиться от двойного вычисления условия (конечно, cond в else не нужен).
From:[info]qulinxao
Date:June 27th, 2011 - 07:01 pm

Вирт - Ворт

(Link)
сам сознавался что у неуважительного Дейкстры это обнаружил.

такой цикл в том числе для конечного автомата удобен.

ну у дейксты если все условия лажа то raise(АХТУНГ , полная лажа) и срыв коры.
[User Picture]
From:[info]ketmar
Date:June 27th, 2011 - 11:40 pm

Re: Вирт - Ворт

(Link)
не пользоваться хорошим — плохо. пользоваться слепо — тоже. ну и вообще — Вирт практик прежде всего, ему весь этот матан до пизды.
From:[info]alamar
Date:June 27th, 2011 - 10:00 pm
(Link)
Макрос можно написать.
[User Picture]
From:[info]ketmar
Date:June 27th, 2011 - 11:41 pm
(Link)
для языков, где есть макросы, это не надо — там проще EDSL сделать. а остальные — увы.