fork download
  1. (defun factorial-lambda (n)
  2. (labels ((fact-iter (n acc) ; Локальная функция fact-iter
  3. (if (<= n 1)
  4. acc ; Базовый случай
  5. (fact-iter (- n 1) (* n acc))))) ; Рекурсивный вызов
  6. (fact-iter n 1))) ; Вызов локальной функции
  7.  
  8. ;; Пример использования:
  9. (format t "Факториал 6 (factorial-lambda): ~A~%" (factorial-lambda 6))
  10.  
  11.  
  12. (defun factorial-lambda-down (n)
  13. (labels ((fact-rec (x)
  14. (if (<= x 1)
  15. 1
  16. (* x (fact-rec (- x 1))))))
  17. (fact-rec n)))
  18.  
  19.  
  20. ;; Пример использования:
  21. (format t "Факториал 6 (factorial-lambda-down): ~A~%" (factorial-lambda-down 6))
  22.  
  23.  
  24. (defun factorial-let (n)
  25. (labels ((fact-iter (n acc) ; Локальная функция fact-iter
  26. (if (<= n 1) ; Базовый случай: если n <= 1, возвращаем аккумулятор (acc)
  27. acc
  28. (fact-iter (- n 1) (* n acc))))) ; Рекурсивный вызов
  29. (fact-iter n 1))) ; Вызов локальной функции с начальными значениями
  30.  
  31. ;; Пример использования:
  32. (format t "Факториал 6 (factorial-let): ~A~%" (factorial-let 6))
  33.  
  34. (defun factorial-let-down (n)
  35. (labels ((fact-rec (x) ; Определяем локальную функцию fact-rec с `labels`
  36. (if (<= x 1)
  37. 1 ; Базовый случай
  38. (* x (fact-rec (- x 1)))))) ; Рекурсивный вызов
  39. (fact-rec n))) ; Вызываем локальную функцию
  40.  
  41. ;; Пример использования:
  42. (format t "Факториал 6 (factorial-let-down): ~A~%" (factorial-let-down 6))
  43.  
  44.  
Success #stdin #stdout #stderr 0.01s 9472KB
stdin
Standard input is empty
stdout
Факториал 6 (factorial-lambda): 720
Факториал 6 (factorial-lambda-down): 720
Факториал 6 (factorial-let): 720
Факториал 6 (factorial-let-down): 720
stderr
Warning: reserving address range 0x80000c0000...0x1fffffffffff that contains memory mappings. clisp might crash later!
Memory dump:
  0x8000000000 - 0x80000bffff
  0x14a3ada00000 - 0x14a3adce4fff
  0x14a3ade15000 - 0x14a3ade39fff
  0x14a3ade3a000 - 0x14a3adfacfff
  0x14a3adfad000 - 0x14a3adff5fff
  0x14a3adff6000 - 0x14a3adff8fff
  0x14a3adff9000 - 0x14a3adffbfff
  0x14a3adffc000 - 0x14a3adffffff
  0x14a3ae000000 - 0x14a3ae002fff
  0x14a3ae003000 - 0x14a3ae201fff
  0x14a3ae202000 - 0x14a3ae202fff
  0x14a3ae203000 - 0x14a3ae203fff
  0x14a3ae280000 - 0x14a3ae28ffff
  0x14a3ae290000 - 0x14a3ae2c3fff
  0x14a3ae2c4000 - 0x14a3ae3fafff
  0x14a3ae3fb000 - 0x14a3ae3fbfff
  0x14a3ae3fc000 - 0x14a3ae3fefff
  0x14a3ae3ff000 - 0x14a3ae3fffff
  0x14a3ae400000 - 0x14a3ae403fff
  0x14a3ae404000 - 0x14a3ae603fff
  0x14a3ae604000 - 0x14a3ae604fff
  0x14a3ae605000 - 0x14a3ae605fff
  0x14a3ae693000 - 0x14a3ae696fff
  0x14a3ae697000 - 0x14a3ae697fff
  0x14a3ae698000 - 0x14a3ae699fff
  0x14a3ae69a000 - 0x14a3ae69afff
  0x14a3ae69b000 - 0x14a3ae69bfff
  0x14a3ae69c000 - 0x14a3ae69cfff
  0x14a3ae69d000 - 0x14a3ae6aafff
  0x14a3ae6ab000 - 0x14a3ae6b8fff
  0x14a3ae6b9000 - 0x14a3ae6c5fff
  0x14a3ae6c6000 - 0x14a3ae6c9fff
  0x14a3ae6ca000 - 0x14a3ae6cafff
  0x14a3ae6cb000 - 0x14a3ae6cbfff
  0x14a3ae6cc000 - 0x14a3ae6d1fff
  0x14a3ae6d2000 - 0x14a3ae6d3fff
  0x14a3ae6d4000 - 0x14a3ae6d4fff
  0x14a3ae6d5000 - 0x14a3ae6d5fff
  0x14a3ae6d6000 - 0x14a3ae6d6fff
  0x14a3ae6d7000 - 0x14a3ae704fff
  0x14a3ae705000 - 0x14a3ae713fff
  0x14a3ae714000 - 0x14a3ae7b9fff
  0x14a3ae7ba000 - 0x14a3ae850fff
  0x14a3ae851000 - 0x14a3ae851fff
  0x14a3ae852000 - 0x14a3ae852fff
  0x14a3ae853000 - 0x14a3ae866fff
  0x14a3ae867000 - 0x14a3ae88efff
  0x14a3ae88f000 - 0x14a3ae898fff
  0x14a3ae899000 - 0x14a3ae89afff
  0x14a3ae89b000 - 0x14a3ae8a0fff
  0x14a3ae8a1000 - 0x14a3ae8a3fff
  0x14a3ae8a6000 - 0x14a3ae8a6fff
  0x14a3ae8a7000 - 0x14a3ae8a7fff
  0x14a3ae8a8000 - 0x14a3ae8a8fff
  0x14a3ae8a9000 - 0x14a3ae8a9fff
  0x14a3ae8aa000 - 0x14a3ae8aafff
  0x14a3ae8ab000 - 0x14a3ae8b1fff
  0x14a3ae8b2000 - 0x14a3ae8b4fff
  0x14a3ae8b5000 - 0x14a3ae8b5fff
  0x14a3ae8b6000 - 0x14a3ae8d6fff
  0x14a3ae8d7000 - 0x14a3ae8defff
  0x14a3ae8df000 - 0x14a3ae8dffff
  0x14a3ae8e0000 - 0x14a3ae8e0fff
  0x14a3ae8e1000 - 0x14a3ae8e1fff
  0x560b44cf6000 - 0x560b44de6fff
  0x560b44de7000 - 0x560b44ef0fff
  0x560b44ef1000 - 0x560b44f50fff
  0x560b44f52000 - 0x560b44f80fff
  0x560b44f81000 - 0x560b44fb1fff
  0x560b44fb2000 - 0x560b44fb5fff
  0x560b452af000 - 0x560b452cffff
  0x7fffdcd84000 - 0x7fffdcda4fff
  0x7fffdcdb2000 - 0x7fffdcdb5fff
  0x7fffdcdb6000 - 0x7fffdcdb7fff