История изменений
Исправление wandrien, (текущая версия) :
чем 2 3 4 отличаются?
when guard : statement
Строго один guard и один statement.
Рассматривай это как аналог when
в Аде: exit when A;
Однако читать выражения в обратную сторону, начиная с условия в конце, я рассматриваю как плохую практику. Потому в Qod такая запись будет выглядеть так: when A: exit;
if then else end
подразумевает, что может быть else
, а также что statements может быть больше одного.
select
подразумевает, что guards может быть больше одного.
зачем forever?
Для того, чтобы при закрытии блока ты видел, какой именно цикл закрывается.
указатели, ссылки есть вообще?
Есть. Хохлов синтаксически оформил указатели как ссылки, то есть с автоматическим dereference в выражении. Так что они одновременно и указатели, и ссылки. (Тоже в стиле Ады сделано.)
Это я планирую переделать, разбив на отдельные синтаксические формы: тип указателя будет а ля ^int
, а тип ссылки а ля @int
.
как писать блоки типа сишных {…}?
Никак. Си уже существует.
Исходная версия wandrien, :
чем 2 3 4 отличаются?
when guard : statement
Строго один guard и один statement.
Рассматривай это как налог when
в Аде: exit when A;
Однако читать выражения в обратную сторону, начиная с условия в конце, я рассматриваю как плохую практику. Потому в Qod такая запись будет выглядеть так: when A: exit;
if then else end
подразумевает, что может быть else
, а также что statements может быть больше одного.
select
подразумевает, что guards может быть больше одного.
зачем forever?
Для того, чтобы при закрытии блока ты видел, какой именно цикл закрывается.
указатели, ссылки есть вообще?
Есть. Хохлов синтаксически оформил указатели как ссылки, то есть с автоматическим dereference в выражении. Так что они одновременно и указатели, и ссылки. (Тоже в стиле Ады сделано.)
Это я планирую переделать, разбив на отдельные синтаксические формы: тип указателя будет а ля ^int
, а тип ссылки а ля @int
.
как писать блоки типа сишных {…}?
Никак. Си уже существует.