Функция max ограничена 255-тью значениями, можно ли её расширить? - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Функция max ограничена 255-тью значениями, можно ли её расширить?

Функция max ограничена 255-тью значениями, можно ли её расширить?

Ответ
Поиск в этой теме
Непрочитано 23.10.2012, 13:22
Функция max ограничена 255-тью значениями, можно ли её расширить?
Klo
 
Инженер-конструктор
 
Юбилейный МО
Регистрация: 29.10.2007
Сообщений: 269

В своём лиспе использовал функцию max для сравнения чисел, но пользователи умудрились превысить максимальное возможное количество чисел для сравнения (как выяснилось - 255 шт.) и теперь приходится исправлять свою недальновидность.
Кто знает как обойти данное ограничение?
Или как написать свой аналог данной функции?
Просмотров: 6666
 
Непрочитано 24.10.2012, 12:01
#21
5hev

roads
 
Регистрация: 22.12.2010
msk
Сообщений: 121
<phrase 1= Отправить сообщение для 5hev с помощью Skype™


Klo, странно. Первое - блоков у вас больше чем 256 (два скрытых висят). Второе - все работает на указанной строке.
5hev вне форума  
 
Автор темы   Непрочитано 24.10.2012, 12:23
#22
Klo

Инженер-конструктор
 
Регистрация: 29.10.2007
Юбилейный МО
Сообщений: 269


Нда-с, действительно чудеса!
Видимо, когда редактировал файлик, очищая от мусора для удобства просмотра, что-то случайно поправил...
Klo вне форума  
 
Непрочитано 24.10.2012, 13:25
#23
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Дима_ Посмотреть сообщение
В общем по ходу это у всех функций...
В общем походу это только для eval. И не стоит забывать ограничения по глубине рекурсии
gomer вне форума  
 
Непрочитано 24.10.2012, 13:28
#24
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Евалу по барабану - он то список принимает - можешь проверить в рукопашную, про рекурсию - там еще запас большой.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 24.10.2012, 14:12
#25
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Евалу по барабану - он то список принимает - можешь проверить в рукопашную
блин, согласен, кстати в брикскад нет таких жестких ограничений

(defun ml(x) (if (not (zerop x)) (cons x (ml (1- x)))))
(eval (cons 'max (ml 1999)))

еще работает

а вот (ml 2000) уже нет

Последний раз редактировалось gomer, 24.10.2012 в 14:27.
gomer вне форума  
 
Непрочитано 24.10.2012, 14:43
#26
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от gomer Посмотреть сообщение
а вот (ml 2000) уже нет
В брискаде это как раз может быть из-за глубины рекурсии, попробуй итерацией:
Код:
[Выделить все]
 (defun iter-ml(x / ret) (while (not (zerop x)) (setq x (1- x) ret (cons x ret))))
p/s/ кстати, чисто из моего спортивного интереса, проверь может в брискаде и хвостовая оптимизированна:
Код:
[Выделить все]
 (defun tail-ml(x)
  ((lambda (frec) (frec '() x))
   (lambda (ret x)
     (if (zerop x)
         ret
         (frec (cons x ret) (1- x))))))
Запусти с запасом так - на нескольких миллионах.
__________________
Когда в руках молоток все вокруг кажется гвоздями.

Последний раз редактировалось Дима_, 24.10.2012 в 14:54.
Дима_ вне форума  
 
Непрочитано 24.10.2012, 15:24
#27
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Запусти с запасом так - на нескольких миллионах.
(tail-ml 1997) - работает, дальше нет
итерация со скрипом, но работает до мильона, даже больше, но в какой-то момент вылазит из кучи (heap)
gomer вне форума  
 
Непрочитано 24.10.2012, 15:43
#28
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


В автокаде итерация поскрипев 8 секунд проглотила 10 млн (в общем нет правды, у тех. одно у этих другое).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Функция max ограничена 255-тью значениями, можно ли её расширить?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цветовые схемы вкладки модель gomer Готовые программы 63 17.01.2014 07:28
RGB составляющие индексных цветов автокада zamtmn Программирование 26 23.10.2012 01:31
Нелинейный расчет и РСУ??? bivis333 Конструкции зданий и сооружений 240 23.01.2010 18:39