首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >常见的lisp:如何运行let-over-lambda测试

常见的lisp:如何运行let-over-lambda测试
EN

Stack Overflow用户
提问于 2015-12-13 02:19:06
回答 1查看 210关注 0票数 1

我正在使用道格霍伊特的例子和菲隆的让-过去-兰巴,同时建立了我的理解,共同lisp包,快速和asdf,以及生产水平,专业实践的规模编程在普通的lisp。

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

我在这里找到了代码:https://github.com/thephoeron/let-over-lambda。我正在使用“消防水管”和“增量式猜测”的方法尽可能快地塞进我的脑海,使用作为线索指南。当然,这种方法会给我留下更多模糊的知识点,而不是一种更有条理的方法,但它可能会让我更快地到达山顶(请让我摆脱这种想法)。

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

(load "~/quickload/setup.lisp") (ql:quickload "let-over-lambda") (let-overlambda:flatten '((a . b) c (d e)))

并获取

代码语言:javascript
复制
(A B C D E)

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

(defpackage #:let-over-lambda (:nicknames #:lol) (:use #:cl #:cl-user #:cl-ppcre)

我可以用这个昵称:

代码语言:javascript
复制
(lol:flatten '((a . b) c (d e)))
=> (A B C D E)

甚至进口它的出口,不再需要有资格的符号:

代码语言:javascript
复制
(use:package :lol)
(flatten '((a . b) c (d e)))
=> (A B C D E)

现在,我注意到回购包含一个诱人的测试包和目录"t":

-rw-r--r-- 1 921 Dec 5 05:27 let-over-lambda-test.asd -rw-r--r-- 1 941 Dec 5 05:27 let-over-lambda.asd -rw-r--r-- 1 17421 Dec 5 05:27 let-over-lambda.lisp -rw-r--r-- 1 1771 Dec 5 05:27 package.lisp drwxr-xr-x 3 102 Dec 5 05:27 t

不过,我还没有弄清楚如何运行测试,这就是我的问题:我该怎么做?以下是我在sbcl1.3.1中尝试过的一些失败的东西:

代码语言:javascript
复制
* (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] 

还有这个

代码语言:javascript
复制
* (load "./t/let-over-lambda.lisp")
While evaluating the form starting at line 3, column 0
  of #P"/Users/bbeckman/Documents/let-over-lambda/./t/let-over-lambda.lisp":

debugger invoked on a SB-KERNEL:SIMPLE-PACKAGE-ERROR in thread
#<THREAD "main thread" RUNNING {1002ACC943}>:
  The name "PROVE" does not designate any package.

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

restarts (invokable by number or by possibly-abbreviated name):
  0: [RETRY   ] Retry EVAL of current toplevel form.
  1: [CONTINUE] Ignore error and continue loading file "/Users/bbeckman/Documents/let-over-lambda/./t/let-over-lambda.lisp".
  2: [ABORT   ] Abort loading file "/Users/bbeckman/Documents/let-over-lambda/./t/let-over-lambda.lisp".
  3:            Exit debugger, returning to top level.

(SB-INT:%FIND-PACKAGE-OR-LOSE "PROVE")
0] 

编辑:快速加载“证明”,如下所示,在我的环境中加载了更多很酷的东西,但仍然让我不知道如何运行测试。我认为“证明”会自动作为defsystem的依赖在“让-over-lambda-test”中被加载,所以这是一个小小的惊喜:

代码语言:javascript
复制
* (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

如有任何指导,我将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-13 03:57:30

定义了ASDF测试-op,以便评估

代码语言:javascript
复制
(asdf:test-system #:let-over-lambda)

应该能起作用。您可能需要首先加载超车测试系统。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34247324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档