Mik*_*one 2 lisp common-lisp ccl
我知道def*可以有docstrings,所以我只是尝试一下lambdas.
令人尴尬的是,以下内容返回NIL.
(documentation (lambda () "a function which always returns nil" nil) 'function)
Run Code Online (Sandbox Code Playgroud)
怎么了?lambdas不能有docstrings吗?有办法吗?
根据HyperSpec部分符号LAMBDA,语法为:
lambda lambda-list [[declaration* | documentation]] form*
Run Code Online (Sandbox Code Playgroud)
所以显然允许使用doc字符串.标准通用功能文档(SETF DOCUMENTATION)列出了两个标准方法签名:
documentation (x function) (doc-type (eql 't))
documentation (x function) (doc-type (eql 'function))
Run Code Online (Sandbox Code Playgroud)
这与你试图调用它的方式相匹配.
但是,功能描述包括以下警告:
文档字符串可用于调试目的.允许合规程序在文档字符串存在时使用它们,但不应依赖于它们在存在这些文档字符串时的正确行为.由于实现定义的原因,允许实现随时丢弃文档字符串.
因此,虽然从技术上讲,文件字符串在您的情况下不会保存,但这是一个糟糕的实现.
| 归档时间: |
|
| 查看次数: |
188 次 |
| 最近记录: |