Привет все. Тут такое дело, чего то я недопонимаю ...
Имеется две реализации !
% cat tttt.scm
#!/usr/bin/env gsi-script
(define factorial-1
 (lambda (n)
  (if (zero? n)
   1
   (* n (factorial-1 (- n 1))))))
(define factorial-2
 (lambda (n)
  (let iteration ((i n)
                  (p 1))
   (if (zero? i)
    p
    (iteration (- i 1) (* p i))))))
(time (factorial-1 16384))
(newline)
(time (factorial-2 16384))
Причем вторая работает медленнее, хотя я ожидал что она будет
быстрее.
% ./tttt.scm
(time (factorial-1 16384))
    1376 ms real time
    1297 ms cpu time (891 user, 406 system)
    139 collections accounting for 417 ms real time (273 user, 141 system)
    206481088 bytes allocated
    62384 minor faults
    no major faults
(time (factorial-2 16384))
    1844 ms real time
    1734 ms cpu time (1242 user, 492 system)
    762 collections accounting for 818 ms real time (625 user, 141 system)
    228843664 bytes allocated
    67161 minor faults
    no major faults
Как же tail call optimisation и все такое? Поясните если можно.
    
      Ответ на:
      
          комментарий
        от Legioner 
  
    
      Ответ на:
      
          комментарий
        от Legioner 
  
    
      Ответ на:
      
          комментарий
        от asgard 
  
    
      Ответ на:
      
          комментарий
        от Legioner 
  
    
      Ответ на:
      
          комментарий
        от asgard 
  
    
      Ответ на:
      
          комментарий
        от dilmah 
  
    
      Ответ на:
      
          комментарий
        от binnehex 
  
    
      Ответ на:
      
          комментарий
        от asgard 
  
    
      Ответ на:
      
          комментарий
        от watashiwa_daredeska 
  
    
      Ответ на:
      
          комментарий
        от anonymous 
  
    
      Ответ на:
      
          комментарий
        от funny_falcon 
  
    
        Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
      
Похожие темы
- Форум интерпретаторы scheme и факториал (2008)
 - Форум ФВП и производительность (2015)
 - Форум Involuntary context switches и все-все-все. (2016)
 - Форум От чего может различаться скорость одинаковых SSD? (2020)
 - Форум Скорость обработки массивов в разных лиспах и прочих яп (2013)
 
- Форум рекурсия и итерация (2013)
 - Форум prometheus-nginxlog-exporter не показывает нужные метрики (2019)
 - Форум Рекурсия против циклов (2016)
 - Форум хвостовая рекурсия (lisp/scheme) (2007)
 - Форум mdadm raid 10, низкая скорость записи (2014)