2017-09-17 7 views
2

私は最近、#'sb-ext:string-to-octets#'sb-ext:octets-to-stringの2つの機能についての応答があるsbclについてquestionに尋ねました。私の質問に答えることに加えて、これはパッケージsb-extの外部シンボルをブラウズして、他に何が使われているのかを調べるべきであることも教えてくれました。sbcl:# 'sb-ext:文字列とオクテットの追加のドキュメント

私の質問(sbcl関連)はこれです:パッケージsb-extの外部シンボルを閲覧する以外に、パッケージsb-extとその他の追加について説明するマニュアルがあります(私は特定の専門用語であるため「拡張」という言葉を使用してください)例えば、#'sb-ext:string-to-octetsおよび#'sb-ext:octets-to-stringは、sbcl manualで議論されていない。

+2

、ソースを読んで(または関心の実物に近い少なくともコメント)されます通常は最良の選択です。 SBCLコードは合理的に明確であり、よくコメントされています。 'STRING-TO-OCTETS'では、特に関数がむしろ自明であるため、おそらく多くのドキュメントがないようです。 – jkiiski

+0

私が使用していることの1つは、このためのrepl-utilitiesです。 sb-ext-packageを使用して、(要約)を実行してすべてのドキュメント文字列を表示し、M-関心のあるルーチンで –

答えて

1

他の質問の@svanteで指摘されているように、私はpostabiliytのために別のライブラリを使い、通常はbabelのようによく書かれています。

通常、シンボルがansi common lispにある場合、docを確認するには、clhsslyslimeがそのための優れた機能を持っていることを確認する必要があります。

、通常、私は次のように進行:常にあなたのシンボルについての関連情報を取得

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 

記述する機能、あなたはずるい使用tehのソースに行くことができるか、スライムは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リポジトリに行くテストを読むためのリポジトリに行くことができます。このfucntionを探すのは、関数の使い方を簡単に理解できるように読むことができるソースコードテストです:

このような

https://github.com/sbcl/sbcl/search?utf8=%E2%9C%93&q=string-to-octets&type=

:マニュアルではなく、ドキュメンテーション文字列を持っていないものについては

https://github.com/sbcl/sbcl/blob/622c9daf9bb41ef9ad4b8a063c62c4baf59a1c1a/tests/octets.pure.lisp

関連する問題