在通常的lisp中,是否有推薦針對外國類型的命名約定? (和一般類型)?例如:cffi/foreign類型的推薦命名約定
(cffi:defctype glyph-index-t :uint32)
(cffi:defcstruct Point
(x :int32)
(y :int32))
(cffi:define-foreign-library fontlib (t (:default "font")))
(cffi:use-foreign-library fontlib)
(cffi:defctype font-ptr-t :pointer)
(cffi:defcfun "hasKerning" :boolean (fontptr font-ptr-t))
(cffi:defcfun "getKerning" Point
(fontptr font-ptr-t)
(glyph1 glyph-index-t)
(glyph2 glyph-index-t))
在這個例子中defcstruct Point
對應於C/C++型struct Point{int32 x, y;};
,glyph-index-t
對應於typedef uint32 GlyphIndex;
和font-ptr-t
是struct Font*
。
我不確定我是否應該簡單地添加-t
後綴的一切(因爲我glyph-index-t
一樣),使解釋區分大小寫的(所以我可以用C用大寫來表示類型,如++,這可能是一個壞的想法),還是有其他傳統方式來做到這一點。有什麼建議?
只是一個挑剔的解釋器(和編譯器)總是區分大小寫;這是_reader_默認提升。您仍然可以使用混合大小寫符號名稱與默認的可讀取形式,例如'| MixedCaseSymbol |'或'us \ o \ fa'。 –
@JoshuaTaylor:是的,我知道,但AFAIK,區分大小寫的lisp是一種非常不規範/「非常規」的編碼風格。另一方面,我爲自己編程,所以這不應該是一個問題... – SigTerm