Common lisp CommonLisp:如何运行LetOverLambda测试

Common lisp CommonLisp:如何运行LetOverLambda测试,common-lisp,let-over-lambda,Common Lisp,Let Over Lambda,我正在使用Doug Hoyte和Phoeron's let over lambda的例子来同时建立我对通用lisp包、quicklisp和asdf的理解,以及对通用lisp大规模编程的生产级专业实践的理解 我能够以如下所示的方式使用这个包,但还没有弄清楚如何使用类似的部分引导猜测来运行它的测试。详情如下 我在这里找到了代码:。我使用“消防水龙”和“渐进式猜测”的方法,尽可能快地将大量信息塞进我的大脑,作为线索指南。当然,这种方法会给我留下比结构化方法更多的模糊知识点,但它可能会让我更快地到达山顶

我正在使用Doug Hoyte和Phoeron's let over lambda的例子来同时建立我对通用lisp包、quicklisp和asdf的理解,以及对通用lisp大规模编程的生产级专业实践的理解

我能够以如下所示的方式使用这个包,但还没有弄清楚如何使用类似的部分引导猜测来运行它的测试。详情如下

我在这里找到了代码:。我使用“消防水龙”和“渐进式猜测”的方法,尽可能快地将大量信息塞进我的大脑,作为线索指南。当然,这种方法会给我留下比结构化方法更多的模糊知识点,但它可能会让我更快地到达山顶(请随意解释一下这个概念)

在我目前的初步理解水平上,我可以在自己的代码中使用这个包。例如,我会写作


(加载“~/quickload/setup.lisp”)
(ql:quickload“让渡lambda”)
让我们把“((a.b)c(de))展平)

得到

(A B C D E)
我可以注意到,通过读取“package.lisp”中的
defpackage
,包定义了一个昵称,
lol
,即(缩写):


(defpackage#):让出lambda
(:昵称#:lol)
(:use#:cl#:cl user#:cl ppcre)

我可以用这个昵称:

(lol:flatten '((a . b) c (d e)))
=> (A B C D E)
甚至进口其出口产品,不再需要限定符号:

(use:package :lol)
(flatten '((a . b) c (d e)))
=> (A B C D E)
现在,我注意到repo包含一个诱人的测试包和目录“t”:


-rw-r--r--1921年12月5日05:27让渡lambda-test.asd
-rw-r--r--1941年12月5日05:27送经lambda.asd
-rw-r--r--117421 Dec 5 05:27让渡lambda.lisp
-rw-r--r--11771年12月5日05:27 package.lisp
drwxr-xr-x 3 102 Dec 5 05:27 t

但是,我还没有弄清楚如何运行测试,这就是我的问题:我该如何做?以下是我在sbcl 1.3.1中尝试过但未成功的一些事情:

* (ql:quickload "let-over-lambda-test")

debugger invoked on a QUICKLISP-CLIENT:SYSTEM-NOT-FOUND in thread
#<THREAD "main thread" RUNNING {1002ACC943}>:
  System "let-over-lambda-test" not found

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [CONTINUE] Try again
  1: [ABORT   ] Give up on "let-over-lambda-test"
  2:            Exit debugger, returning to top level.

((LABELS QUICKLISP-CLIENT::RECURSE :IN QUICKLISP-CLIENT::COMPUTE-LOAD-STRATEGY) "let-over-lambda-test")
0] 

我将非常感谢您的指导。

ASDF测试op的定义如下:

(asdf:test-system #:let-over-lambda)

应该这样做。您可能需要首先加载让渡lambda测试系统。

在REPL中输入时,此调用(不带“#”)返回
t
,声称测试已经运行。但是,当我在测试中插入故意错误以查看它们是否失败,以验证测试是否确实运行时,我没有收到失败通知:上面的表单仍然生成
t
。我将寻找一个较小的示例;我认为这一示例中发生的事情太多了。
* (ql:quickload "prove")
To load "prove":
  Load 2 ASDF systems:
    alexandria cl-ppcre
  Install 5 Quicklisp releases:
    anaphora cl-ansi-text cl-colors let-plus prove
; Fetching #<URL "http://beta.quicklisp.org/archive/anaphora/2011-06-19/anaphora-0.9.4.tgz">
; 5.02KB
==================================================
5,136 bytes in 0.00 seconds (5015.63KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/let-plus/2013-12-11/let-plus-20131211-git.tgz">
; 10.52KB
==================================================
10,768 bytes in 0.00 seconds (0.00KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/cl-colors/2015-03-02/cl-colors-20150302-git.tgz">
; 14.11KB
==================================================
14,449 bytes in 0.06 seconds (220.47KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/cl-ansi-text/2015-08-04/cl-ansi-text-20150804-git.tgz">
; 5.74KB
==================================================
5,876 bytes in 0.00 seconds (5738.28KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/prove/2015-08-04/prove-20150804-git.tgz">
; 854.08KB
==================================================
874,578 bytes in 3.35 seconds (254.95KB/sec)
; Loading "prove"
[package alexandria.0.dev]........................
..................................................
[package anaphora]................................
[package anaphora-basic]..........................
[package anaphora-symbol].........................
[package let-plus]................................
[package cl-colors]...............................
[package cl-ansi-text]............................
[package prove.output]............................
[package prove.report]............................
[package prove.reporter]..........................
[package prove.asdf]..............................
[package prove.suite].............................
[package prove.test]..............................
[package prove.color].............................
[package prove]...................................
[package prove.reporter.tap]......................
[package prove.reporter.fiveam]...................
[package prove.reporter.list].....................
[package prove.reporter.dot].
("prove")
* (ql:quickload "let-over-lambda-test")

debugger invoked on a QUICKLISP-CLIENT:SYSTEM-NOT-FOUND in thread
#<THREAD "main thread" RUNNING {1002ACC943}>:
  System "let-over-lambda-test" not found

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [CONTINUE] Try again
  1: [ABORT   ] Give up on "let-over-lambda-test"
  2:            Exit debugger, returning to top level.

((LABELS QUICKLISP-CLIENT::RECURSE :IN QUICKLISP-CLIENT::COMPUTE-LOAD-STRATEGY) "let-over-lambda-test")
0] 2
(asdf:test-system #:let-over-lambda)