Documentation sbcl:附加文档(例如)#和#x27;sb ext:字符串到八位字节

Documentation sbcl:附加文档(例如)#和#x27;sb ext:字符串到八位字节,documentation,lisp,common-lisp,sbcl,Documentation,Lisp,Common Lisp,Sbcl,我最近问了一个关于sbcl的问题,其中一个回答提到了两个我不知道的函数:#sb-ext:string-to-octets和#sb-ext:octets-to-string。除了回答我的问题外,这也教会了我应该浏览包sb ext的外部符号,看看还有什么其他用途 我的问题(与sbcl相关)是:除了浏览包sb ext的外部符号外,是否还有其他手册描述包sb ext以及sbcl的其他补充(我试图避免使用“扩展”一词,因为它是一个特定的技术术语)#sb-ext:string to octets和#sb-e

我最近问了一个关于sbcl的问题,其中一个回答提到了两个我不知道的函数:
#sb-ext:string-to-octets
#sb-ext:octets-to-string
。除了回答我的问题外,这也教会了我应该浏览包sb ext的外部符号,看看还有什么其他用途


我的问题(与sbcl相关)是:除了浏览包sb ext的外部符号外,是否还有其他手册描述包sb ext以及sbcl的其他补充(我试图避免使用“扩展”一词,因为它是一个特定的技术术语)<例如,code>#sb-ext:string to octets和
#sb-ext:octets to string
在中没有讨论。

正如@svante在另一个问题的一个答案中指出的那样,对于类似的事情,我更喜欢使用另一个库进行后期处理,并且通常都有很好的文档记录

通常,如果符号在ansi common lisp中,那么在检查common lisp中的doc时,您应该检查teh,并且有一个很好的工具

通常情况下,我会按照以下步骤进行:

CL-USER> (documentation 'sb-ext:octets-to-string 'function)
NIL
CL-USER> (describe 'sb-ext:octets-to-string)
SB-EXT:OCTETS-TO-STRING
  [symbol]

OCTETS-TO-STRING names a compiled function:
  Lambda-list: (VECTOR &KEY (EXTERNAL-FORMAT DEFAULT) (START 0) END)
  Derived type: (FUNCTION
                 ((VECTOR (UNSIGNED-BYTE 8)) &KEY (:EXTERNAL-FORMAT T)
                  (:START T) (:END T))
                 *)
  Source file: SYS:SRC;CODE;OCTETS.LISP
; No values
“描述”功能始终为您提供有关符号的相关信息,然后您可以使用sly或slime is with
M-。

(defun octets-to-string (vector &key (external-format :default) (start 0) end)
  (declare (type (vector (unsigned-byte 8)) vector))
  (with-array-data ((vector vector)
                    (start start)
                    (end end)
                    :check-fill-pointer t)
    (declare (type (simple-array (unsigned-byte 8) (*)) vector))
    (let ((ef (maybe-defaulted-external-format external-format)))
      (funcall (ef-octets-to-string-fun ef) vector start end))))
最后,您可以访问存储库阅读测试,在本例中,您可以访问github SBCL repo并查找此功能提供的源代码测试,以便轻松使用此功能:

像这样:


对于手册中没有且没有文档字符串的内容,阅读源代码(或至少是感兴趣的内容附近的注释)通常是最佳选择。SBCLs代码相当清晰,注释良好。特别是对于
字符串到八位字节的
来说,似乎没有太多文档,可能是因为函数是自解释的。您可以使用sbext包,只需进行(摘要)即可查看所有文档字符串,然后使用M-。关于感兴趣的例行公事。