defsignal откуда этот зверь?
От: Аноним  
Дата: 30.12.11 19:48
Оценка: :)
и что за зверье
Re: defsignal откуда этот зверь?
От: hardcase Пират http://nemerle.org
Дата: 30.12.11 21:50
Оценка:
Здравствуйте, Аноним, Вы писали:

А>и что за зверье


Это гипотетический макрос, который я придумал в качестве примера "отслеживания" изменения переменной.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[2]: defsignal откуда этот зверь?
От: Аноним  
Дата: 31.12.11 07:57
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Здравствуйте, Аноним, Вы писали:


А>>и что за зверье


H>Это гипотетический макрос, который я придумал в качестве примера "отслеживания" изменения переменной.

На сколько реально его реализовать? Есть ли макрос похожий на него
Re[3]: defsignal откуда этот зверь?
От: CodingUnit Россия  
Дата: 31.12.11 13:07
Оценка:
Здравствуйте, Аноним, Вы писали:

А>На сколько реально его реализовать? Есть ли макрос похожий на него


Я так понимаю вы все пытаетесь сделать отслеживание изменения переменной, может вернемся к началу, к постановке задачи. Опишите что вы хотите сделать, и как, есть множество разных подходов и не все они сразу ясны для начинающих, может задача решается и без такой экстравагантной фичи.
Re[4]: defsignal откуда этот зверь?
От: Аноним  
Дата: 31.12.11 15:50
Оценка:
Здравствуйте, CodingUnit, Вы писали:
меняю одну переменную и меняются связанные. Интересно сделать именно дсл
Re[5]: defsignal откуда этот зверь?
От: CodingUnit Россия  
Дата: 31.12.11 15:58
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, CodingUnit, Вы писали:

А>меняю одну переменную и меняются связанные. Интересно сделать именно дсл

А нельзя ли поконкретней, почему задача выражается именно в таком виде, может это можно оформлять в виде класса, на уровне объектов такие вещи проще делать. Что за алгоритм? Просто мне кажется здесь перегиб в плане анализа алгоритма, функциональные алгоритмы должны быть выглядеть как преобразование данных, из одного вида в другой, при этом ничего не изменяется как таковое, создаются новые сущности, на основе старых. Вот давайте сначала посмотрим на алгоритм может его можно с помощью имеющихся способов привести к красивому виду, не задействуя тяжелую артиллерию.
Re[5]: defsignal откуда этот зверь?
От: CodingUnit Россия  
Дата: 31.12.11 20:26
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, CodingUnit, Вы писали:

А>меняю одну переменную и меняются связанные. Интересно сделать именно дсл

Нельзя ли объяснить каким образом они должны меняться, если я просто получаю новое значение для связанных переменных, например так:


def x = 1;
def y = x * 2;
def x = 2;


здесь y на выходе должно быть 4

или должно менять их содержимое, например:


def x = MyObject();
def y = DependentObject(x);
def x = x.Change();

получаем зависимый объект тоже меняет свое значение от нового объекта x (предположим что он неизменяемый)

В первом случае можно сделать полный анализ кода, при этом последующий расчет зависящий от новых переменных, запускается на новых значениях, но довольно криво получается, не проще ли идею изначально пересмотреть, чтобы перерасчитывать что нужно. весь блок можно переписать компилятором так:

def temp_func(x)
{
def y = x * 2
(x, y)
}

def x = 1;
def (x, y) = temp_func(x);
def (x, y) = temp_func(2);

то есть весь код, какой бы он сложный переписывается в вызов функций одна из другой, наподобие монад, на входе несколько значений, на выходе несколько значений, если одна из переменных в расчете меняется, цепочка запускается снова. Макрос должен код преобразовать к такому виду, это непростая задача.

def (x, y, z) = f(f2(f3(x), 3), x, z)

Во втором случае, объекты проще наделять какими то свойствами которые будут связаны на событиях, или менять значение поля при изменении одного из свойств. Или что то наподобие DependentProperties. Но можете задачу более объяснить какой вариант вам нужен.

PS: С Новым Годом товариши!
Re[5]: defsignal откуда этот зверь?
От: WolfHound  
Дата: 01.01.12 00:48
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>меняю одну переменную и меняются связанные. Интересно сделать именно дсл

Те тебе нужно реактивное программирование?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: defsignal откуда этот зверь?
От: Аноним  
Дата: 01.01.12 10:45
Оценка:
не совсем но очень близко
Re[7]: defsignal откуда этот зверь?
От: Аноним  
Дата: 03.01.12 12:23
Оценка:
aP
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.