list作为通用数据类型表示的缺点是什么?

day*_*day 2 lisp scheme functional-programming s-expression

Lisp程序员倾向于使用列表来表示所有其他数据类型.

但是,我听说列表不是数据类型的良好通用表示.

与使用记录相比,以这种方式使用列表有什么缺点?

Joh*_*nts 5

你提到"记录".通过这个我认为你指的是固定元素结构/对象/复合数据.例如,在HtDP语法中:

;; a packet is (make-packet destination source text) where destination is a number, 
;; source is a number, and text is a string.
Run Code Online (Sandbox Code Playgroud)

...并且您询问将数据包表示为长度为3的列表的优缺点,而不是作为一段复合数据(或"记录").

在化合物数据合适的情况下 - 值具有特定的角色和名称,并且它们具有固定数量 - 通常优选化合物数据; 它们可以帮助您捕获程序中的错误,这是编程的必要条件.