Common lisp 如何用CL表示树?

Common lisp 如何用CL表示树?,common-lisp,Common Lisp,我想将下面的OCaml类型(一个不平衡的二叉树)转换为commonlisp,但作为CL新手,我不知道如何使用动态语言 type 'a tree = Leaf | Node of 'a * 'a tree * 'a tree 任何建议都将不胜感激 标准cons是树节点,car是左边的子树,cdr是右边的 有关详细信息,请参阅。基本公共Lisp没有区分的联合类型定义 我发现使用CLOS取得了合理的成功: (defclass tree () (data left right)) 有

我想将下面的OCaml类型(一个不平衡的二叉树)转换为commonlisp,但作为CL新手,我不知道如何使用动态语言

type 'a tree =
    Leaf
  | Node of 'a * 'a tree * 'a tree

任何建议都将不胜感激

标准cons是树节点,car是左边的子树,cdr是右边的


有关详细信息,请参阅。

基本公共Lisp没有区分的联合类型定义

我发现使用CLOS取得了合理的成功:

(defclass tree () (data left right))  
有关使用DEFCLASS的详细信息,请参见

更节省内存的方法是使用DEFSTRUCT而不是DEFCLASS