61
Общий раздел / Re: Модифицированный синтаксис Оберона
« : Ноябрь 29, 2012, 08:03:12 pm »xs: array [1..10] of integer;xs:[1..10] int
ys: array [0..9] of byte;
ys:[0..9] byte или тоже самое ys:[9] byte, так как с нуля
намного красивее.
Онлайн компилятор Oberon-07/11
Путеводитель по Оберон-проектам.
Логи jabber-конференции.
Онлайн исходники BlackBox: тут:WeBB и на github
Исходники Project Oberon V4 на github.
Сборник решений задач книги "Современное программирование с нуля!" тут. А обсуждение здесь.
В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.
xs: array [1..10] of integer;xs:[1..10] int
ys: array [0..9] of byte;
M4: [9] int := ( 1, 2, 3, 4, 5, 6, 7, 48, 0 )
M4: [] int := ( 1, 2, 3, 4, 5, 6, 7, 48, 0 )
а что такое erec - сокращение от erection? - нет ... принцип построенияerecord
у форм должен быть один начинаться с id (уникальный идентификатор формы) - кончаться e_id (добавлением e_ к идентификатору)
Чтобы было понятно куда двигаться, скажи, где предполагается использовать анонимные функции? (не делаем же мы их, просто для того чтобы "было")Сложно сказать, где они незаменимы, может как сахар.
2. END - нафиг (е_module и e_proc без повторения названий )может eif, erec, emodule, efor?
foo()
уже определяет, что это процедура или функция.вроде сильно не обгадив основную идею ВиртаТак уже обговорили, что лучше do while и while do
еще бы repeat until бы говенный заменить...
разумеется ( кроме nil, еще и '' - для литер) - все должно иметь начальное значение..если нужна, то только без слова var, а саму секцию можно завершить ;
2. нужна.. - в противном случае мыбудем иметь блочную локальность - а это уже не Оберон
Какая ж она анонимная, если у нее есть имя - foo ? :-)сорри
(a, b: int) return a*a + b*b end
инициализацию 0 по умолчанию, инициализацию переменных в секции var, для хардкорщиков модификатор undef (показатель что переменная не инициализируется), перегрузку процедур, и вместо безликих end ов - e_rec, e_if,e_for, e_while... и массивы индексируемые с единицы0 и nil, секция var не нужна
Как анонимная функция не годится?Тем, что без вывода типа это работать не будет. Где указан тип возвращаемого значения?Код: [Выделить]foo(a, b: int)
Чем плоха такая форма?
return a*a + b*b
end
foo(a, b: int)
return a*a + b*b
end
Чем плоха такая форма?
Мод Оберон:Код: [Выделить]foo :: Integer Integer -> Integer
foo a b = a*a + b*b
foo(a, b: int): int
return a*a + b*b
end foo;
о! Красота!Только убираем var и def.