有关用于不同类型注释的分号数量(以及不同数量的分号的缩进程度应该是多少)的Lisp约定是什么?
另外,是否有关于何时使用分号注释以及何时使用的约定#|multiline comments|#
(假设它们存在且存在于多个实现中)?
Common Lisp有return-from
; return
当你想从函数中提前返回时,有什么类型的Clojure吗?
Clojure的:
1:13 user=> (first (conj '(1 2 3) 4))
4
1:14 user=> (first (conj [1 2 3] 4))
1
; . . .
1:17 user=> (first (conj (seq [1 2 3]) 4))
4
Run Code Online (Sandbox Code Playgroud)
我理解发生了什么,但这应该有所不同吗?
在设计新的编程语言时,可以安全地假设C int和指针在机器上的大小相同吗?
当你调用C时malloc
,是否可以保证前几个低位是什么?如果你正在为一个动态语言编写一个编译器/解释器但想要有形式的fixnums bbbbbbbb bbbbbbbb . . . bbbbbbb1
(其中b有点)和表单的指针bbbbbbbb bbbbbbbb . . . bbbbbbb0
(反之亦然),有没有办法保证malloc
返回指针适合这样的计划?
我应该只分配比我需要的多两个字节,如果需要,将返回值增加1以适应位方案,并将返回的实际指针存储malloc
在第二个字节中,以便我知道该怎么做free
?
我可以假设malloc
将返回一个零指针作为最后一位吗?我可以假设x86末尾有两个零位,而x64最后会有四个零位吗?
可能重复:
emacs lisp,如何获取缓冲区主模式?
有没有办法让Emacs Lisp代码确定当前的主要模式?
有谁知道如何(或者如果)你可以使用ABCL将Lisp代码编译为.class文件并创建一个main方法,以便整个事件可以打包成.jar文件并运行?
另外,有没有人知道如何从ABCL代码访问原语Java类型?
当有人从C库绑定到Java(或任何其他垃圾收集语言而没有保证运行的析构函数)时,它们如何处理非垃圾收集内存的正确释放?
编辑:我正在考虑的事情(我知道这在我的原始问题中没有明确说明)是当一块非gc'ed内存保存对其他非gc'ed资源的引用时需要释放的对象被释放.例如,如果你有一个非gc'ed链表节点,这是一个很长的这类节点列表的头部,你想让gc系统最终自动清理它,你如何设置它?