|
Сравнение двух глобалов
|
|||
---|---|---|---|
#18+
Интересная тема снова на Community . У каждого есть в запасе похожая утилита? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2016, 17:04 |
|
Сравнение двух глобалов
|
|||
---|---|---|---|
#18+
Шваров ЕвгенийУ каждого есть в запасе похожая утилита? ) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2016, 08:18 |
|
Сравнение двух глобалов
|
|||
---|---|---|---|
#18+
servit , как, конечно, всем хорошо известно, класса %CPT.Util.TreeDiff нет даже в 2016.1. Не все бегут "впереди планеты всей", хотя к этому стоит стремиться. У меня тоже есть функция сравнения глобалов на чистом M/COS. Ничего принципиально отличного от ранее опубликованного, те же $Query с @. Мне общее решение задачи оказалось не нужно: используя утилиту для тестирования кода экспорта-импорта глобалов в различных форматах, и 1-ого расхождения глобалов мне всегда оказывается достаточно, чтобы выправить дефект. ...Несколько лет назад, когда писал функцию, потратил определённые усилия на поиск разумного поведения после обнаружения 1-го расхождения с тем, чтобы найти их все до достижения некоторого верхнего предела - типичный случай "перепрограммирования". ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2016, 09:31 |
|
Сравнение двух глобалов
|
|||
---|---|---|---|
#18+
Alexey Maslovкак, конечно, всем хорошо известно, класса %CPT.Util.TreeDiff нет даже в 2016.1.$zv указан не был, поэтому 10031109 . Что касается более старых версий, то есть готовая утилита %GCMP , сравнивающая глобалы и которая присутствует даже в 5.0.x. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2016, 10:20 |
|
Сравнение двух глобалов
|
|||
---|---|---|---|
#18+
servitЧто касается более старых версий, то есть готовая утилита %GCMP ...А мужики и не знают :) Меня, например, она бы не устроила, т.к.: - не умеет сравнивать подмассивы - не имеет API (чистый интерактив). Понятно, что всё это можно пофиксить, но для столь простых задач быстрее и проще написать заново. А про %GCMP, если честно, я просто забыл - а она ведь была даже в MSM. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2016, 16:46 |
|
Сравнение двух глобалов
|
|||
---|---|---|---|
#18+
Alexey Maslovне умеет сравнивать подмассивыНе могли бы Вы уточнить, что здесь подразумевалось? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2016, 17:02 |
|
Сравнение двух глобалов
|
|||
---|---|---|---|
#18+
servit, опубликовал всё же свою функцию, там в комментариях вроде всё есть. Подмассив: a(1), ^G(1,"aaa"). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2016, 17:21 |
|
Сравнение двух глобалов
|
|||
---|---|---|---|
#18+
Alexey MaslovПодмассив: a(1), ^G(1,"aaa").Т.е. я изначально правильно Вас понял. Почему же в %GCMP нельзя их использовать, когда - можно? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2016, 09:10 |
|
Сравнение двух глобалов
|
|||
---|---|---|---|
#18+
Вот и отлично. Моё (несмелое :) предположение было основано на опыте работы с другими утилитами Cache, ориентированными на глобалы: чтобы понять, работают ли они с поддеревьями, как правило, надо пробовать: это не всегда очевидно, и синтаксис разный: где-то надо закрывать скобку (%GSIZE), где-то нет (%GOGEN). В качестве бонуса: моя функция позволяет сравнивать и локальные [под]массивы. Так вышло само собой, хоть и ни разу не пригодилось. Справедливости ради, "всеядны" и некоторые другие решения на community, хотя по условию задачи требовалось сравнить локальные массивы: народ просто прислал готовые функции, вряд ли кто-то писал "к случаю". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2016, 10:05 |
|
Сравнение двух глобалов
|
|||
---|---|---|---|
#18+
Alexey Maslov, Почему же, я написал к случаю. Чего там писать то? P.S. Решения (кроме моего :) ), конечно, поражают большим объемом over-design-а. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2016, 11:36 |
|
Сравнение двух глобалов
|
|||
---|---|---|---|
#18+
Timur SafinРешения (кроме моего :) ), конечно, поражают большим объемом over-design-а.Если считать расширение исходной постановки "сравнить два локальных массива" на глобалы, соглашусь, хотя и ваш код работает с глобалами. А в остальном... ну, наверное, тем, кто писал "не к случаю", это было для чего-то нужно. Если уж зашёл разговор: считать ли равными массивы m(1) и n(2), где: m(1, 1,1)=11 m(1, 2)=12 n(2, 1,1)=11 n(2, 2)=12 Я считаю, что да, а вы, как видно, нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2016, 12:36 |
|
Сравнение двух глобалов
|
|||
---|---|---|---|
#18+
Даже если принять вашу точку зрения, всё равно у вас ошибка. См. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2016, 12:53 |
|
|
start [/forum/topic.php?fid=39&msg=39272225&tid=1556450]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 160ms |
0 / 0 |