powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / помогите начинающему с глобалами
48 сообщений из 48, показаны все 2 страниц
помогите начинающему с глобалами
    #38254271
nurekil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть глобал:
1: ^B(1) = "Team"
2: ^B("ghgjghj") = 54
3: ^B("ghgjghj",2) = "bob"
4: ^B("ghgjghj",3) = "port"
5: ^B("1232") = "red"
6: ^B("1232",3) = "point"
7: ^B("1232",6) = "yellow"
и т.д.........

задача вывести все значения узлов (через терминал) вниз по дереву, начиная с определенного задаваемого значения
допустим с "ghgjghj"
результат примерно таков:

узел "ghgjghj" = 54
узел 2 = "bob"
узел 3 = "port"
узел "1232" = "red"
узел "1232" = "point"
узел "1232" = "yellow"
и т.д.........
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254291
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Совершенно верно.
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254343
nurekil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бредятина, спасибо огромное
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254350
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пьян по случаю ДР коллеги, но мне кажется, что причина в том, что я ничего не понял во втором и третьем посте, не в этом.
А ТС - используйте $query иили $order.
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254353
AvA-N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nurekil,

В данном случае лучше использовать функцию $query

 s gl=$na(^B) ; - Глобаль
 s i="ghgjghj" ; - Стартовый индекс
 f  s i=$q(@gl@(i)) q:i=""  w "Узел: "_$na(^(i))_" = "_$g(^(i))
 ; не забываем про 2-а пробела после  for  и после  quit  по условию
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254372
nurekil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AvA-N, по непонятным мне причинам условие выхода из цикла q:i="" не выполняется, поменял его на q:i=" " результат тот же

пробовал вводить различные начальные точки i - вывод работает
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254387
AvA-N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проверьте должно быть два пробела между q:i="" и w

Хотя если там нет 2-х пробелов, то скрипт должен вылетать по АНДЕФУ

Если не получится $query то можно через $order реализовать:

s gl=$na(^B) ; - Глобаль
s i="ghgjghj" ; - Стартовый индекс
f s i=$o(@gl@(i)) q:i="" w "Узел "_$na(^(i))_" = "_$g(^(i)) s k="" f s k=$o(@gl@(i,k)) q:k="" w "Узел "_$na(^(k))_" = "_$g(^(k))

Если глубина глобали увеличиться, то соответственно нужно будет добавить еще один цикл.

P.S. Мне приходилось на М-языке разрабатывать/сопровождать много разных приложений и программ из разных областей: банки, бухгалтерия, документооборот, биллинговые системы, интерфейсы разных уровней, писал архиватор на MSM и прочие задачи. И я абсолютно уверен, что если в скрипте приходится использовать функцию $query, то это первый признак того, что структура базы разработана коряво. Хотя не исключаю, что существуют исключения.
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254392
AvA-N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу скрипт напрямую в редакторе форума, поэтому ошибочку допустил - там во втором цикле в quit по условию нужно указать переменную k Модератор: Исправлено
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254423
nurekil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AvA-N, практически работает, в результате работы (при начальной точке "ghgjghj") выдает пустую строку, потому что дальше ничего нет, но хотелось бы чтобы выводило включительно начиная с ("ghgjghj")

при начальной точке "1232" идет вниз по дереву не включая "1232"-глобал

1: ^C(1) = "Team"
2: ^C(1232) = "red"
3: ^C(1232,3) = "point"
4: ^C(1232,6) = "yellow"
5: ^C("ghgjghj") = 54
6: ^C("ghgjghj",1) = "bob"
7: ^C("ghgjghj",2) = "port"
8: ^C("ghgjghj",3) = "port"
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254430
AvA-N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все правильно, цифры всегда вначале списка, если нужно включительно с конкретного индекса начинать, определяем стартовый индекс следующим образом:

s i="ghgjghj",i=$o(@gl@(i),-1) ; - Стартовый индекс

если стартовый индекс указать "" то цикл переберет всю глобаль.
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254438
nurekil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AvA-N, в этом то и вся соль,
если в качестве начальной точки водить s i="ghgjghj" , то результат выполнения[img=[img=]]
видимо все дело в то что нач. индекс строка, а не число

не знаешь случаем что нужно сделать, чтобы хавало строку??
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254448
AvA-N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотрите внимательно на мой предыдущий пост. Все должно работать.
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254473
nurekil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AvA-N, s i="ghgjghj",i=$o(@gl@(i),-1) ; - Стартовый индекс
результат таков
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254474
nurekil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nurekil,
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254479
nurekil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AvA-NПосмотрите внимательно на мой предыдущий пост. Все должно работать.
результат следующий:

USER>Do ^points

Point ^C(1232) = red
Point ^C(1232,3) = point
Point ^C(1232,6) = yellow
Point ^C(1) = Team
USER>
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254487
AvA-N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то не так. Покажите текст программы.
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254490
nurekil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AvA-N,
S ^C(1)="Team"
S ^C(1232)="red"
S ^C(1232,3)="point"
S ^C(1232,6)="yellow"
S ^C("ghgjghj")=54
S ^C("ghgjghj",1)="bob"
S ^C("ghgjghj",2)="port"
S ^C("ghgjghj",3)="port"

s gl=$na(^C)
s i="ghgjghj"
f s i=$o(@gl@(i),-1) q:i="" w !, "Point "_$na(^(i))_" = "_$g(^(i)) s k="" f s k=$o(@gl@(i,k)) q:k="" w !, "Point "_$na(^(k))_" = "_$g(^(k))
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254492
AvA-N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы не так меня поняли, должно быть следующим образом (разбил детально с комментариями):

s gl=$na(^C)
s i="ghgjghj" ; - Стартовый индекс
s i=$o(@gl@(i),-1) ;- Предыдущее значение от стартового индекса
f s i=$o(@gl@(i)) q:i="" w !, "Point "_$na(^(i))_" = "_$g(^(i)) s k="" f s k=$o(@gl@(i,k)) q:k="" w !, "Point "_$na(^(k))_" = "_$g(^(k))
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254502
nurekil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AvA-N,

спасибо все заработало, выводит включительно с начальной точкой

P.S. читал в методичке, что Функция$O((…),-1) – обратный относительно функции$O[rder] проход по уровням дерева
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254512
AvA-N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все правильно в методичке написано. Вообще $order - это одна из основных функций. Если вы планируете работать с М-системами, то необходимо уметь читать текст, понимать что происходит и т.д. Все придет с опытом.
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254720
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AvA-Nf s i=$o(@gl@(i)) q:i="" w "Узел "_$na(^(i))_" = "_$g(^(i)) s k="" f s k=$o(@gl@(i,k)) q:k="" w "Узел "_$na(^(k))_" = "_$g(^(k))

Если глубина глобали увеличиться, то соответственно нужно будет добавить еще один цикл.

Рекурсия спасёт отца русской демократии ;)
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254754
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П.С.М.Рекурсия спасёт отца русской демократии ;)
Рекурсия - фигня!

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
	n
	s ^B(1) = "Team"
	s ^B("ghgjghj") = 54
	s ^B("ghgjghj",2) = "bob"
	s ^B("ghgjghj",3) = "port"
	s ^B("1232") = "red"
	s ^B("1232",3) = "point"
	s ^B("1232",6) = "yellow"
	s beg="ghgjghj"
	s beg=$na(^B(beg))
	s beg=$q(@beg,-1)
	f  s beg=$q(@beg) q:beg=""  w !,$qs(beg,$ql(beg)),"=",@beg
	q


Нужно использовать правильные функции...
Результат работы

Код: vbnet
1.
2.
3.
ghgjghj=54
2=bob
3=port
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254849
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно использовать правильные функции...
Так то да, но вроде как у ТС что-то не задолось с использования $query несколькими постами выше.
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38254922
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Замодернизировал немного:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
TEST(Index)
 N (Index)
 D CREATEGBL
 S Index=$G(Index)
 S beg=$NA(^tmp(Index))
 I Index'="" {
 		S var=$Q(@beg,-1)
 		S:var="" var=$O(@beg,-1)
 		S beg=$S(var'="":var,1:$NA(^tmp("")))
 }
 F  S beg=$Q(@beg) Q:beg=""  W !,$QS(beg,$QL(beg)),"=",@beg 
 Q
CREATEGBL
 S ^tmp("a")="a"
 S ^tmp("b")="b"
 S ^tmp("c")="c"
 S ^tmp("d")="d"
 S ^tmp("d",5,8)="dfss"
 S ^tmp("a",1000,"abc")="gggg"
 S ^tmp("c","c","c",456)="e"
 Q
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38255250
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П.С.М.вроде как у ТС что-то не задолось с использования $query
Он просто не умеет их готовить... (с)
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38259121
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nurekilAvA-N, по непонятным мне причинам условие выхода из цикла q:i="" не выполняется, поменял его на q:i=" " результат тот же

пробовал вводить различные начальные точки i - вывод работает
Это неправда.
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38259187
krvsaРекурсия - фигня!

Ой вэй, рекурсия - божественна. Но тут, действительно, лучше использовать $query
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38259595
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не рубящий в кашеОй вэй, рекурсия - божественна.
Фигасе!

Рекурсия это лишь простое решение того, что не можешь (не умеешь, ленишься) разложить на конечное число циклов...
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38259630
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рекурсия хороша,
Когда неглубока,
А когда глубока,
Падает от обморока.
ДокументацияIn rare cases, this recursion can rise to several thousand levels, threatening stack overflow and a process crash.
However, recursion can lead to stack overflow.
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38260134
servit, не думаю, что у krvsa, который пытается разложить на конечное число циклов будет переполнение стека.
Вот такая программа у меня дошла до 1304 шага:
Код: sql
1.
2.
3.
4.
5.
rec(i)
	w !,i
	do rec(i+1)

rec(0)



krvsa, попробуй без рекурсии с конечным числом циклов пройтись по всем файлам и директориям на диске. Я вот, не могу, не умею и ленюсь делать это без рекурсии.
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38260409
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не рубящий в кашеkrvsa, попробуй без рекурсии с конечным числом циклов пройтись по всем файлам и директориям на диске.
Я такое уже делал.
Как раз для иллюстрации самому себе. Т.к. сам когда-то столкнулся с утверждением, что любую рекурсию можно разложить на конечное число циклов.
Причем скорость обработки после "раскладки" (например на JavaScript) возрастает значительно!

не рубящий в кашеЯ вот, не могу, не умею и ленюсь делать это без рекурсии.
Это твои проблемы...
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38260413
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не рубящий в кашене думаю, что у krvsa, который пытается разложить на конечное число циклов будет переполнение стека.

Нет конечно...
Потому как количество циклов будет явно меньше десятка... Пока хватало 5-6...
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38260505
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaТ.к. сам когда-то столкнулся с утверждением, что любую рекурсию можно разложить на конечное число циклов. Если точнее, то любую хвостовую рекурсию можно заменить на итерацию (цикл).
Так что сначала преобразуем рекурсию в хвостовую, и если получилось - в итерацию. Приходилось делать такое на COS, т.к. рекурсивное программирование на нём - штука потенциально ненадёжная из-за относительно небольшой глубины стека. Если даже сегодня программа "вписывается" в стек, то завтра либо постановка немного поменяется, либо вызовы пойдут с большей глубины стека - и привет, <FRAMESTACK>. К тому же ускорение от перехода на итерацию обычно довольно значительное.
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38260541
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если использовать необходимое количество накопителей с замещением, то любую рекурсию можно заменить на итерации. Каждая итерация просто 1) замещает принятый на обработку элемент набором если требуется рекурсия или 2) выносит его из накопителя если обработка выполнена полностью. Верхний уровень просто повторяет итерации если в накопителях что-то есть.
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38260673
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну яЕсли использовать необходимое количество накопителей с замещением...То есть, фактически вы предлагаете моделировать стек на локальной памяти процесса? Это, конечно, решит проблему потенциального <FRAMESTACK>, едва ли даст ускорение по сравнению с "классической" рекурсией. Фишка хвостовой рекурсии в том, что рекурсивный вызов - последнее действие функции, поэтому её локальная среда повторно никогда не используется. Поэтому локальную среду не надо восстанавливать, а отсюда - совсем небольшой шаг до превращения рекурсии в итерацию.
Неплохая подборка примеров таких превращений.
Ещё где-то попалось, что компиляторы некоторых ЯП автоматически распознают хвостовую рекурсию и компилируют её в итерацию. До чего дошёл прогресс...
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38260841
krvsaЯ такое уже делал.
Вот прям по любой файловой структуре, не зная глубину вложенности директорий?
ну яЕсли использовать необходимое количество накопителей с замещением, то любую рекурсию можно заменить на итерации.
Так любая рекурсия и превращается при компиляции в итерацию с использованием стека, где хранятся локальные окружения.
Alexey MaslovЕщё где-то попалось, что компиляторы некоторых ЯП автоматически распознают хвостовую рекурсию и компилируют её в итерацию. До чего дошёл прогресс...
В основном в функциональных языках, вроде Haskell'a. А если говорить о чистых функциональных языках, то там даже циклов нет в принципе.
И, хочу заметить, отнюдь не любую рекурсивную функцию можно превратить в хвостовую с аккумулятором.
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38260921
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не рубящий в кашеИ, хочу заметить, отнюдь не любую рекурсивную функцию можно превратить в хвостовую с аккумулятором.Вообще-то теория гласит другое:С. М. Дудаков. "Математическое введение в информатику"Теорема 6.3. (Об удалении рекурсии) По каждому алгоритму
можно построить эквивалентный алгоритм без рекурсии.Но, возможно, вам удастся её опровергнуть. Дерзайте!
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38260932
Alexey Maslov, я писал про "хвостовую (рекурсию, прим.) с аккумулятором", а вы мне про "эквивалентный алгоритм без рекурсии".
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38260944
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я лишь изложил один из подходов к преобразованию рекурсии в итерацию, который приходилось применять лично. Хвостовая рекурсия - не самоцель, а лишь промежуточный шаг.
Но теорема, оказывается, более сильная, в ее формулировке нет ни слова о хвостовой рекурсии. Может быть, она в общем случае и не нужна; на анализ доказательства времени сейчас нет.
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38261143
Alexey MaslovЯ лишь изложил один из подходов к преобразованию рекурсии в итерацию
Да, рекурсия становится всегда итеративной при компиляции. Для этого компилятором(интерпретатором) добавляется стек вызовов.
А вот если говорить о преобразовании рекурсии во что-то итерационное в коде программиста, мне становится страшно. Или использование n-уровней циклов, когда уровней неких данных > n. Ведь в первом случае никто не поймёт, что автор имел в виду. А во втором просто будет коллапс. Мы же говорим о построении продакшен(извините за столь противное слово)-систем, где рекурсия помогает сберечь нервы людей сопровождающих код.
Alexey MaslovХвостовая рекурсия - не самоцель, а лишь промежуточный шаг.
Но теорема, оказывается, более сильная, в ее формулировке нет ни слова о хвостовой рекурсии.
И не будет, ведь хвостовая рекурсия - частный случай обычной рекурсии. Иногда можно привести рекурсию к хвостовой (факториал, фиобоначчи, например), иногда нельзя: сопоставление с образцом и вызов в зависимоти от этого разных функций.
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38261290
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovЕсли точнее, то любую хвостовую рекурсию можно заменить на итерацию (цикл).
Можно спорить долго... Применять термины... Но фраза была только со словами "ркурсию" и "любую".
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38261292
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну яЕсли использовать необходимое количество накопителей с замещением, то любую рекурсию можно заменить на итерации. Каждая итерация просто 1) замещает принятый на обработку элемент набором если требуется рекурсия или 2) выносит его из накопителя если обработка выполнена полностью. Верхний уровень просто повторяет итерации если в накопителях что-то есть.
Да, именно такой прием и применял, когда проверял то утверждение...
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38261295
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslovедва ли даст ускорение по сравнению с "классической" рекурсией
А вот это все уже нужно проверять.
Например яваскриптеры четко утверждали об обратном! Ускорение было (ради него и делали) и значительное (это их слово)...
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38261298
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не рубящий в кашеВот прям по любой файловой структуре, не зная глубину вложенности директорий?
Глубина вложенности при "развороте" рекурсии в циклы не имеет никакой роли, т.к. количество циклов конечно и оно не велико...

С "любой файловой структурой" я дело не имел, т.ч. утверждать не буду. Но если говорить о Кащее - так там одни функции на все про все, т.ч. разницы в этом не вижу...
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38261301
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslovна анализ доказательства времени сейчас нет.
Да и смысла особого нет.
Для меня было достаточным знать про это. И при желании тепрь я могу смело этим знанием воспользоваться!
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38261306
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не рубящий в кашеДа, рекурсия становится всегда итеративной при компиляции. Для этого компилятором(интерпретатором) добавляется стек вызовов.
Алилуия!!!
Т.е. сам факт этого ты уже признал...

не рубящий в кашеА вот если говорить о преобразовании рекурсии во что-то итерационное в коде программиста, мне становится страшно. Или использование n-уровней циклов, когда уровней неких данных > n. Ведь в первом случае никто не поймёт, что автор имел в виду. А во втором просто будет коллапс.
Страшно - не делай.
И про понимание все очень относительно... Например я не требую от конечных программеров понимания наших "системных" процедур и функций, достаточно уметь их применять.

не рубящий в кашеМы же говорим о построении продакшен(извините за столь противное слово)-систем, где рекурсия помогает сберечь нервы людей сопровождающих код.
Тот продакшен только выиграет если обработка чего-либо по времени уменьшится.

Например совсем недавно была разработана процедура позволяющая обрабатывать некий "стек процедур/функций" многоджобово, в зависимости от настроек пользователя.
Программинг для конечного программиста усложнился значительно. Но сам процесс обработки вырос в разы на многопроцессорных процессорных и многоядерных компах. А в ЦОДах выростет и подавно.
Т.ч. получается, что игра стоит свеч!


А применительно к тебе - тебе и решать. Я так для себя это уже решил...
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38262377
krvsaне рубящий в кашеДа, рекурсия становится всегда итеративной при компиляции. Для этого компилятором(интерпретатором) добавляется стек вызовов.
Алилуия!!!
Т.е. сам факт этого ты уже признал...

Эм, а где я это отрицал? Только вот этим занимается компилятор, а не бедняги-программисты.
...
Рейтинг: 0 / 0
помогите начинающему с глобалами
    #38262416
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сталкивался с проблемой, что открытый курсор является видимым на разных уровнях рекурсии.
И приходится либо работать по принципу "открыл курсор - обработал и сохранил данные - закрыл курсор - рекурсивно исходя из собранных данных выполнил функцию", либо изолировать курсор объявляя new системным переменным, что кажется мне не очень надежным способом.

Кстати, посмотрел бы, сколько придется попрыгать при развертывании дерева, хранящегося в реляционной таблице для отображения в графическом виде не использую рекурсию.
...
Рейтинг: 0 / 0
48 сообщений из 48, показаны все 2 страниц
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / помогите начинающему с глобалами
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]