Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - ilovb

Страницы: 1 2 [3] 4 5 ... 170
31
Общий раздел / Re: Oberon rev. 2015 (февраль)
« : Март 06, 2015, 09:07:29 pm »
vlad, тебе надо перерыв сделать. Перегрелся походу. Уже не только пендосский, но и родной язык понимать перестал  ;D

32
Общий раздел / Re: Oberon rev. 2015 (февраль)
« : Март 06, 2015, 06:42:43 am »
Зачем в примере переменные p0, p1, p2? Можно представить, что пропущено "p0 := p", "p1 := p", "p2 := p" в каждой ветке? Блин, всего 16 страниц описания очень простого языка и вот такая откровенная херня.
p0, p1 и p2 - это и есть p
Т.е. в i-той ветке p становится pi
Лично я так понял при первом прочтении.
Имхо, этот код нужно понимать как формальное описание поведения CASE, а не как кусок программы на обероне.

Вот представь, что тебе нужно объяснить семантику CASE. Как ты это сделаешь?
Можно было бы так написать:
CASE p OF
 0) P0: p.b := 10 |
 1) P1: p.b := 2.5 |
 2) P2: p.b := {0, 2}
END
Вах вах метки тепрь со скобочкой в языке!  ;D

33
Общий раздел / Re: Oberon rev. 2015 (февраль)
« : Март 03, 2015, 08:09:12 pm »
Там написано:
Цитировать
The type T of the case expression (case variable) may also be a record or pointer type. Then the
case labels must be extensions of T, and in the statements Si labelled by Ti, the case variable is
considered as of type Ti.

Цитировать
Тип Т CASE-выражения может быть типом-записью или типом-указателем. CASE-метки должны быть расширениями типа Т и в i-той ветке с i-той меткой (i-тый тип Ti) CASE-переменная считается имеющей тип Ti

Это объяснение примера:
TYPE R = RECORD a: INTEGER END ;
 R0 = RECORD (R) b: INTEGER END ;
 R1 = RECORD (R) b: REAL END ;
 R2 = RECORD (R) b: SET END ;
 P = POINTER TO R;
 P0 = POINTER TO R0;
 P1 = POINTER TO R1;
 P2 = POINTER TO R2;
VAR p: P; p0: P0; p1: P1; p2: P2;
CASE p OF
 P0: p0.b := 10 |
 P1: p1.b := 2.5 |
 P2: p2.b := {0, 2}
END

Он просто занумеровал ветки суффиксом i для наглядности.

Подозреваю, что он в конце концов откажется от:
Цитировать
case variable is considered as of type Ti
И будет тупо выбиралка без охраны.  ;D

Такое ощущение, что он еще в раздумьях (или ему пока лень чистить код). Т.к. в коде можно встретить и такой вариант использования:
CASE M OF
    FontMsg: fnt := M(FontMsg).fnt; w := 0; len := 0; pos := obj(Caption).pos;
      Texts.OpenReader(R, T, pos); Texts.Read(R, ch); dy := R.fnt.minY;
      WHILE ch > 0DX DO
        Fonts.GetPat(fnt, ch, dx, x1, y1, w1, h1, patadr);
        INC(w, dx); INC(len); Texts.Read(R, ch)
      END ;
      INC(obj.y, fnt.minY-dy); obj.w := w; obj.h := fnt.height;
      Texts.ChangeLooks(T, pos, pos+len, {0}, fnt, 0 , 0) |
    ColorMsg: obj.col := M(ColorMsg).col
и такой:
PROCEDURE ChangeMacro(obj: Object; VAR M: Msg);
  BEGIN
    CASE M OF ColorMsg: obj.col := M.col END
  END ChangeMacro;

34
Общий раздел / Re: Oberon rev. 2015 (февраль)
« : Март 02, 2015, 05:55:51 pm »
Господь с тобой, dizer, давно уже перевелись идолопоклонники обероновые. Нынче модно ящерам всяким поклоняться  ;D

35
Общий раздел / Re: Oberon rev. 2015 (февраль)
« : Март 02, 2015, 05:00:32 pm »
А ведь как охуительно обвинять что-то в несоответствии твоим бредовым фантазиям.
Например, берем и называем язык непортабельным. И хуй ведь разберешь чего там аффтар под "портабельностью" набредил.
Или вот берем и говорим, что отсутствие отрицательных чисел в языке не позволяет использовать CASE по назначению. И ведь нам совершенно похуй, что инертность мышления не дает нам развидеть в CASE сишный SWITCH. Мы ведь не знаем из курса математики о функциях выбора всяких. Зато мы шарим в функцианальном программировании. Вот так вот. Элементарных вещей о функциях не знаем, но специалисты в ФП ниипаца.
Нет! Это тьюринговый лауреат дурак, а не я!
А еще мы можем заявить, что Вирт говнокодер, только потому, что он использует глобальные переменные.
Нам ведь похуй, что в системе есть глобальное состояние, которое нужно хранить.
Тьфу, блять. Стыдно должно быть.

36
Общий раздел / Re: Oberon rev. 2015 (февраль)
« : Март 02, 2015, 04:37:30 pm »
kemiisto, ну кто так делает? Постепеееенно нужно... человеков троллировать.

37
Общий раздел / Re: Oberon rev. 2015 (февраль)
« : Март 02, 2015, 03:45:48 pm »
Пардон, но я не видел обоснования. Можешь процитировать?

38
Общий раздел / Re: Oberon rev. 2015 (февраль)
« : Март 02, 2015, 02:08:56 pm »
Почему обязательно ритуал?
Это ученый с мировыми именем. И это подтверждено справкой.
Надо быть полным идиотом, чтобы считать себя умнее его.
Как минимум следует 1000 раз подумать прежде чем ставить его решения под сомнение.
Кто мы собсна такие, чтобы его критиковать?
Из нас тут никто пока еще не сделал даже тысячной доли из того, что сделал он.
Зато такие все специалисты в языках просто охуеть.
Маловата у вас пиписка, товарищи, чтобы Вирта критиковать.

39
Урочище Флуда / WTF?
« : Март 02, 2015, 01:11:14 pm »
Что за юродивый тут свирепствует?
Филиппов который...
Может это... удалить нахуй все его темы вместе с аккаунтом?

40
Общий раздел / Re: Oberon rev. 2015 (февраль)
« : Март 02, 2015, 01:00:38 pm »
В общем, Romiras, не верь в правильность решения, принятого лауреатом премии Тьюринга.
Верь valexey'ю  ;D

Никому не верь -- сам думай. А веру оставь уделом религиозных людей...
Угу, угу. Верь в свою думалку.  ;D
Думать по разному можно. Можно считать себя гением и заниматься хуйней. А можно заткнуть свою гордость в задницу и попытаться понять умного дядьку.

41
Общий раздел / Re: Oberon rev. 2015 (февраль)
« : Февраль 28, 2015, 05:00:00 pm »
В общем, Romiras, не верь в правильность решения, принятого лауреатом премии Тьюринга.
Верь valexey'ю  ;D

42
Общий раздел / Re: Project Oberon on FPGA
« : Сентябрь 14, 2014, 07:10:24 pm »
PS. Насколько я знаю, ilovb также сумел это все запустить.

Да, у меня тоже все заработало с мышкой A4Tech SWOP-35 (Defender не завелся)

44
Цитировать
С введением замыкаций и анонимных функций в версии 3.1 (июль 1998) мы решили использовать для итераций функции высшего порядка. (На самом деле, необходимость в for была одной из основных причин введения анонимных функций в Lua). Lua 3.1 вышла с двумя предопределенными функциями для итерирования:
foreach(table, f)
foreachi(table, f)

Функция foreach применяет f для всех пар ключ-значение, выбранных в произвольном порядке из заданной таблицы. Функция foreachi похожа, но рассматривает таблицу как список (или массив): она перебирает только элементы с числовыми ключами в порядке возрастания значений ключей. Хоть мы и предоставили только эти два способа обхода, было легко создать новые итераторы.
Но хоть и просто было создавать новые, но за более чем два года практически никто их не делал. Первой причиной был дискомфорт для многих программистов использовать анонимные функции и функции высших порядков в процедурном языке. А второй и, на наш взгляд, значительно более важной причиной было отсутствие необходимости для большинства разработчиков в других итераторах. Это означает, что многие годы мы пытались добиться того, что не нужно реальному пользователю. С пониманием этого, мы быстро разработали два формата цикла for: для числовой итерации и для обхода таблиц.

http://habrahabr.ru/post/229269/

45
Общий раздел / Re: Юмор
« : Июль 10, 2014, 10:59:20 am »
Будни одноэсника.
Нужно найти ошибку в запросе.

Страницы: 1 2 [3] 4 5 ... 170