- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在阅读 Practical Common Lisp 这本书,其中有一段代码,我正在使用 Clozure CL 实现:
(defun prompt-read (prompt)
(format *query-io* "~a:" prompt)
(force-output *query-io*)
(read-line *query-io*))
在我成功定义函数后,我通过调用它
(prompt-read "Hello")
然后输入“hello”并按下回车键,输出如下:
CL-USER> (prompt-read "Hello")
Hello:hello
"hello"
NIL
添加了一个额外的空行,我试了下面的代码,没有额外的换行符:
(defun test-read ()
(read-line *query-io*))
然后执行它,结果是这样的:
CL-USER> (test-read)
hello
"hello"
NIL
这次没有产生额外的空行,实际上我发现每次read-line跟随一个格式化函数时,都会产生一个空行。我试过 Clisp 实现中的代码,两种情况都没有产生空行,我只想知道为什么会出现空行,另一个问题是 read-line 是否返回两个值?因为我每次输入的字符串后面都看到一个NIL,这个NIL是什么意思?
感谢您的帮助!
最佳答案
这是 Clozure CL 与 SLIME 读取-评估-打印-循环 (REPL) 的交互。 native Clozure CL REPL 不会这样做。
; SLIME 2014-05-16
CL-USER> (defun prompt-read (prompt)
(format *query-io* "~a:" prompt)
(force-output *query-io*)
(read-line *query-io*))
PROMPT-READ
CL-USER> (prompt-read "Hello")
Hello:hello
"hello"
NIL
如果您多次调用它,您会发现您的代码没有添加换行符,但 REPL 在某些输出完成后会在输出和返回值之间打印一行。
CL-USER> (progn (prompt-read "Hello")
(prompt-read "Hello")
(prompt-read "Hello"))
Hello:hello
Hello:hello
Hello:hello
"hello"
NIL
每个 Lisp 实现都有一些用于 SLIME 后端的特殊代码。也许有区别。
关于lisp - common lisp calling read-line after format 在 Clozure CL 实现中产生一个额外的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25656148/
我有一个问题 SELECT DISTINCT SQL_CALC_FOUND_ROWS cl.id AS id, cl.column1 AS column1, cl.column2 AS column2
我有一个 CL 编号,我想要该更改列表后提交的所有更改列表的 CL 编号。是否有执行此操作的 perforce 命令? 最佳答案 p4 changes //... @yourchangelistnum
我正在使用安装了 quicklisp 的 clozure cl(版本 1.8-r15286m)在 Windows 7 64 位系统上工作。 我需要一些用于普通 lisp 的 freetype2 绑定(
我有示例“你好,世界!”来自网络的代码,我想在我大学服务器的 GPU 上运行它。当我输入“gcc main.c”时,它会响应: CL/cl.h: No such file or directory 我
我正在尝试在 Android Studio 中构建一个 openCL 程序,但一直遇到以下问题: Android Studio fatal error: CL/cl.h No such file or
我正在开发一个 kiosk gui,它是用 ruby/gtk 编写的,使用的是 ubuntu。我希望能够从 ruby/gtk gui 中重新启动——具体来说,我想让刷管理卡的人选择重新启动机器
我安装的一些 elisp 函数会生成警告: `flet' is an obsolete macro (as of 24.3); use either `cl-flet' or `cl-letf'. 如
我正在尝试成功执行一个来自名为 Sia Coin 的新加密货币的 make 文件。可以在这里找到Sia Coin GPU Miner 。它相对较新,因此有些东西需要更多的手动安装。我在 Ubuntu
我正在尝试在 C++ 的 Visual Studio 2015 中使用 OpenCL 在 Windows 7 上编译一个简单的“hello world”程序。尝试构建时,出现此错误: Cannot o
我正在使用 OpenCL 运行内核基准测试。我知道我可以使用 OpenCL 供应商提供的各种工具(即 ioc64 或 poclcc)离线编译内核。问题是我得到的性能结果我无法用这些工具的程序集、Ope
在 iAP88/86 文档中,移位和循环的时序信息取决于 CL 中的移位计数 (p2-64)。这似乎暗示它在 CL 中循环计数,进行那么多单位移位。 所以我的问题是,在循环/移位完成后,CL 是否仍然
所以我尝试制作这样的布局: 一种方法是使用底部应用栏 Anatomy ,但底部应用栏的问题是它只能在坐标布局中使用。但我想要一个 ListView 或说它上面的任何其他 View ,所以我使用约束布局
我正在尝试通过 Qt Creator 在我的系统上运行“Valar”基准测试应用程序,但在构建代码时出现错误: https://github.com/Frinhard/valar-bench 我输入命
为了解决这个问题,我阅读了本网站提供的所有解决方案,但它仍然存在。 当我在 windows 10 C:\pyopencl-2016.2.1>setup.py install 中的 cmd 中运行此命令
我是 SYCL/OpenCL/GPGPU 的新手。我正在尝试构建和运行常量加法程序的示例代码, #include #include #include #include namespace sy
在大量搜索此问题的解决方案后,我发现尚未针对 Windows 正确记录此特定错误。所以我决定将这个问题连同解决方案一起发布。抱歉,如果我将其发布在错误的部分。我希望这个解决方案能帮助用户解决 PyOp
我是 CMake 的新手,在这里遇到了一些障碍,想知道这个问题是否有“优雅”的解决方案,或者可能只是一个简单的解决方案。 例如,为了设置编译器标志,我正在执行以下操作: target_compile_
我们正在使用带有gmake的VC++ 2015。该编译器如何确定它是Release版本还是Debug版本? cl.exe / nologo / Zc:wchar_t / wd4675 / wd4407
我正在尝试分析C++中OpenCL内核的性能。 我目前使用std::chrono每次在保存任何内容之前保存开始时间,然后再调用cl::finish(),然后保存结束时间。 虽然大多数结果看起来都是准确
我知道一点Scheme(很久以前读过SICP),写了这个程序: (define (prl k m) (define (print-line n) (cond ((> n 0) (displ
我是一名优秀的程序员,十分优秀!