Forth http://www.fforum.winglion.ru/ |
|
триггеры http://www.fforum.winglion.ru/viewtopic.php?f=25&t=2786 |
Страница 1 из 1 |
Автор: | mOleg [ Сб дек 24, 2011 16:58 ] |
Заголовок сообщения: | триггеры |
родилась сегодня такая штука: source file: trigger.fts |
Автор: | gudleifr [ Сб дек 24, 2011 17:30 ] |
Заголовок сообщения: | Re: триггеры |
mOleg писал(а): ...триггеры... 1. Зачем называть триггером вещь, которая не работает как триггер? Насколько я понимаю, триггер - штука, которая что-то меняет (в себе или снаружи) при возникновении внешнего события, а совсем не "переменная - указатель на функцию". 2. Опять куча новых (конечно, для меня) слов. Может, если мы постулировали невозможность договориться на уровне языка, все-таки, обмениваться алгоритмами в более общепринятой форме? 3. Изобретать фичу ради фичи, имхо, бессмысленно. Надо бы пример полезного применения. Правда, в силу (2) я, скорее всего, совсем ничего в нем не пойму. |
Автор: | mOleg [ Сб дек 24, 2011 18:56 ] |
Заголовок сообщения: | Re: триггеры |
gudleifr писал(а): 1. Зачем называть триггером вещь, которая не работает как триггер? ну, почему же, переключатель он и есть. Понадобилась такая штука, чтоб из разных мест кода не назначать вектору что попало, точнее, даже не так. вот происходит какое-то событие, и необходимо изменить поведение программы, можно было бы сделать так: Код: : a ." one" ; : b ." two" ; VECT SOMETHING и где-то в коде писать: Код: FROM SOMETHING ['] a = IF ['] b IS SOMETHING ELSE ['] a IS SOMETHING THEN и таких мест много, да и самих SOMETHING не одно. При этом, действия таки только два возможных. Заводить на каждое из них отдельное определение нудно, итак кода уже много. gudleifr писал(а): Опять куча новых (конечно, для меня) слов. странно, а чего там непонятного-то? gudleifr писал(а): Надо бы пример полезного применения. пример, ну, скажем, есть два варианта отображения объемного изображения: 1) каркасное 2) нормальное и нужно между ними туда сюда переключаться по необходимости нажимая одну кнопку, при этом, переключать можно из кучи мест (не из одного), и, главное, других альтернатив быть не должно. |
Автор: | gudleifr [ Сб дек 24, 2011 19:10 ] |
Заголовок сообщения: | Re: триггеры |
mOleg писал(а): ... Вроде понял, спасибо. mOleg писал(а): пример, ну, скажем, есть два варианта отображения объемного изображения: 1) каркасное 2) нормальное и нужно между ними туда сюда переключаться по необходимости нажимая одну кнопку, при этом, переключать можно из кучи мест (не из одного), и, главное, других альтернатив быть не должно. Ну, здесь, скорее, обычный DOER, т.е. никак не триггер, а "указатель на функцию". Код: DOER FUNC DOER SWITCH DOER ON! : OFF! MAKE FUNC DO-B1 DO-B1 ... DO-Bm ;AND MAKE SWITCH ON! ; MAKE ON! MAKE FUNC DO-A1 DO-A2 ... DO-An ;AND MAKE SWITCH OFF! ; Кстати, "настоящие триггера" действительно иногда нужны. Вот, например, что может понадобиться для кибернетических моделей: 1) нейрон, реагирующий на превышение порога посылкой сигнала и переходом в режим восстановления (т.к. параметры всех этих возбуждений/затуханий будут размазаны по разным таблицам, то здесь, скорее будет голая переадресация). 2) тоже самое, но для перехода от честного квантования времени в режим от события - к событию. Вероятностное событие переключения, генерация отложенного события... 3) триггер, как часть гомеостата, различающий возмущение устранимое без изменения состояния от возмущения, вызывающего перерасчет состояний. Понятно, пока проект подобной лабуды не будет доведен до ума, говорить о том, как будут выглядеть триггеры для нее, не имеет смысла. Но одно можно постулировать. Изобретать "триггер" заранее - бесполезно. |
Автор: | mOleg [ Сб дек 24, 2011 19:26 ] |
Заголовок сообщения: | Re: триггеры |
gudleifr писал(а): т.е. никак не триггер цитата из википедии (не буду оригинальничать) Код: Триггер (триггерная система) — класс электронных устройств, обладающих способностью длительно находиться в одном из двух устойчивых состояний и чередовать их под воздействием внешних сигналов. правда, в моем случае не электронное устройство. gudleifr писал(а): обычный DOER С этого чуда я не тащусь никак, не по вкусу он мне. Да и всеравно мой вариант получается короче в итоге. Код: :> a ." включено" ;
:> b ." выключено" ; a b TRIGGER свет ... TOGGLE свет ... где-то свет ... TOGGLE свет .. где-то рас свет .. CHECK свет |
Автор: | gudleifr [ Сб дек 24, 2011 19:36 ] |
Заголовок сообщения: | Re: триггеры |
mOleg писал(а): правда, в моем случае [триггер] не электронное устройство. Я больше имел в виду другие "триггера" - процедуры поддержки целостности БД, связанные с событиями модификации БД. mOleg писал(а): С этого чуда [DOER] я не тащусь никак, не по вкусу он мне. Да и всеравно мой вариант получается короче в итоге. Зато, DOER гораздо универсальнее (и короче). Допустим, пяток строк на определении конкретного триггера Вы сэкономите, но сколько потеряете на обращениях к нему? Сама постановка Вами примера - глобальный переключатель - делает бессмысленной экономию места на определении в ущерб гибкости. P.S. Опять мы сползли в "нравится"/"не нравится". |
Автор: | mOleg [ Сб дек 24, 2011 19:40 ] |
Заголовок сообщения: | Re: триггеры |
gudleifr писал(а): Допустим, пяток строк на определении конкретного триггера Вы сэкономите, но сколько потеряете на обращениях к нему? В каком смысле? gudleifr писал(а): P.S. Опять мы сползли в нравится/не нравится. Такова жизнь. То, что не нравится не сподручно использовать. |
Автор: | gudleifr [ Сб дек 24, 2011 19:43 ] |
Заголовок сообщения: | Re: триггеры |
mOleg писал(а): В каком смысле? TOGGLE светдлиннее и дольше интерпретируется, чем SWITCH плюс, в Вашем случае возможна путаница с установкой начального состояния |
Автор: | mOleg [ Сб дек 24, 2011 19:49 ] |
Заголовок сообщения: | Re: триггеры |
gudleifr писал(а): TOGGLE светдлиннее и дольше интерпретируется, чем Это без разницы, редкое событие, раз, интерпретируется не слишком дольше, т.к. так в код компилируется вызов метода (tgl), два, при нехватке скорости можно в код загнать обработчики, три. |
Автор: | Alexander [ Пн дек 26, 2011 20:23 ] |
Заголовок сообщения: | Re: триггеры |
Всё имеет право на существоание. Но применяем мы это или нет,- тут дело каждого. На практике всё равно индексированная табилца токенов будет приятней. Хотя с автоматизацией чего-то, что решено здесь новой конструкцией будет сложней. |
Автор: | mOleg [ Вт дек 27, 2011 15:45 ] |
Заголовок сообщения: | Re: триггеры |
Alexander писал(а): На практике всё равно индексированная табилца токенов будет приятней. нет. Я все получившиеся переключатели скидываю в один словарь, оставляю там только TOGGLE , и позволяю пользователю их переключать в ему угодном порядке и комбинации. Если комбинацией переключений систему из строя вывести нельзя - она будет устойчивой, а вот если я открою возможность присваивать VECT переменной или какой-то индексированной таблице произвольные cfa (т.е. оставлю интерфейс открытым), то натворят такого... |
Автор: | mOleg [ Пн апр 09, 2012 17:52 ] |
Заголовок сообщения: | Re: триггеры |
развитие идеи (перебор вариантов) source file: round.fts понадобилось вот перебирать варианты отображения чисел и отрисовки формы курсора... |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |