Как установить пакет iterate? - Lisp

Узнай цену своей работы

Формулировка задачи:

Всю жизнь велосиперничал, но тут захотелось iterate, cffi, tk/tcl - ничего из этого я сделать, пока, не в состоянии. Начал с iterate. Как-то надо установить, например с помощью quicklisp. "Quicklisp is easy to install and works with ABCL, Allegro CL, Clasp, Clozure CL, CLISP, CMUCL, ECL, LispWorks, MKCL, SBCL, and Scieneer CL, on Linux, Mac OS X, and Windows.". У меня есть CCL, ABCL, GCL - первые два должны сработать. Попытка 1. Мой любимый ccl-1.11. Установил qucklisp; установил iterate; не работает; вышел из ccl; вошёл заново; запустил qucklisp; загрузил iter; не работает:
? (ql:quickload :iterate)
To load "iterate":
  Load 1 ASDF system:
    iterate
; Loading "iterate"
 
(:ITERATE)
? (iter (repeat 10) (print "abc"))
> Error: Undefined function REPEAT called with arguments (10) .
> While executing: CCL::CHEAP-EVAL-IN-ENVIRONMENT, in process listener(1).
> Type :GO to continue, :POP to abort, :R for a list of available restarts.
> If continued: Retry applying REPEAT to (10).
> Type :? for other options.
1 > 1
 
? (iterate:iter (repeat 10) (print "abc"))
Invoking restart: #<RESTART ABORT-BREAK #x11A175E>
;Compiler warnings :
;   In an anonymous lambda form at position 0: Undefined function REPEAT
> Error: Undefined function REPEAT called with arguments (10) .
> While executing: #<Anonymous Function #xC8EE82E>, in process listener(1).
> Type :GO to continue, :POP to abort, :R for a list of available restarts.
> If continued: Retry applying REPEAT to (10).
> Type :? for other options.
1 > 1
 
? (use-package :iter)
Invoking restart: #<RESTART ABORT-BREAK #x11A1776>
> Error: Using #<Package "ITERATE"> in #<Package "COMMON-LISP-USER">
>        would cause name conflicts with symbols inherited by that package:
>        ITERATE:TERMINATE  TERMINATE
>
> While executing: CCL::USE-PACKAGE-1, in process listener(1).
> Type :GO to continue, :POP to abort, :R for a list of available restarts.
> If continued: Try again to use #<Package "ITERATE"> in #<Package "COMMON-LISP-
USER">
> Type :? for other options.
1 > 1
 
?
Макроса "iter" в системе нет, "iterate:iter" тоже; а "(use-package :iterate)" пишет о конфликте имён. Попытка 2. Всё то же самое, но на abcl-1.3.3:
CL-USER(2): (ql:quickload "iterate")
To load "iterate":
  Load 1 ASDF system:
    iterate
; Loading "iterate"
 
("iterate")
CL-USER(3): (iter (repeat 10) (print "abc"))
#<THREAD "interpreter" {B2978}>: Debugger invoked on condition of type UNDEFINED
-FUNCTION
  The function REPEAT is undefined.
Restarts:
  0: CONTINUE     Try again.
  1: USE-VALUE    Specify a function to call instead.
  2: RETURN-VALUE Return one or more values from the call to REPEAT.
  3: TOP-LEVEL    Return to top level.
[1] CL-USER(4): 3
CL-USER(5): (iterate:iter (repeat 10) (print "abc"))
#<THREAD "interpreter" {B2978}>: Debugger invoked on condition of type UNDEFINED
-FUNCTION
  The function REPEAT is undefined.
Restarts:
  0: CONTINUE     Try again.
  1: USE-VALUE    Specify a function to call instead.
  2: RETURN-VALUE Return one or more values from the call to REPEAT.
  3: TOP-LEVEL    Return to top level.
[1] CL-USER(6): 3
CL-USER(7): (use-package :iterate)
#<THREAD "interpreter" {B2978}>: Debugger invoked on condition of type PACKAGE-E
RROR
  A symbol named ITER is already accessible in package COMMON-LISP-USER.
Restarts:
  0: TOP-LEVEL Return to top level.
[1] CL-USER(8): 0
CL-USER(9): (iter:iter (repeat 10) (print "abc"))
#<THREAD "interpreter" {B2978}>: Debugger invoked on condition of type UNDEFINED
-FUNCTION
  The function REPEAT is undefined.
Restarts:
  0: CONTINUE     Try again.
  1: USE-VALUE    Specify a function to call instead.
  2: RETURN-VALUE Return one or more values from the call to REPEAT.
  3: TOP-LEVEL    Return to top level.
[1] CL-USER(10):
Те же проблемы с "iter" и "iterate:iter"; "(use-package :iterate)" говорит, что "iter" уже есть в системе. Попытка 3. На gcl-2.6.6 quicklisp не установился. Да я на это и не рассчитывал. Что я делаю не так?

Решение задачи: «Как установить пакет iterate?»

textual
Листинг программы
(iterate-keywords:iter (:repeat 5) (print "abc"))

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы