Lipetsk *nix Association Forum Lipetsk *nix Association Forum
Новости:
 
*
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
27 Ноября 2024, 12:20:29


Войти


Страниц: 1 ... 3 4 [5] 6   Вниз
  Печать  
Автор Тема: Программирование под linux  (Прочитано 84780 раз)
0 Пользователей и 11 Гостей смотрят эту тему.
mini_root
Юзверь
**

Карма: -3
Сообщений: 62


Награды
« Ответ #60 : 08 Марта 2008, 21:03:11 »

P.S. Можно поподробнее, что именно делает Memoize? Явно превращает рекурсию в цикл?

Нет. Всего лишь кеширует результаты вызовов функции Fib2, тупо не вычисляя всё по несколько раз.

Я правильно понял - запоминается {имя функции, аргументы, результат} и при совпадении имени и аргументов сразу возвращается результат?

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

P.S. Но вообще прикольно, только что сам набросал примерчик, можно писать в функциональном стиле не теряя в производительности. О сколько нам открытий чудных готовит просвещения дух!
« Последнее редактирование: 08 Марта 2008, 21:07:14 от mini_root » Записан
Страниц: 1 ... 3 4 [5] 6   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM