最近看了点lisp,虽然是刚刚开始看,已经感觉像是进了一个完全不同的世界。
用习惯了C语言的同学对lisp中的链表可能公感觉费解。查阅了一些资料后才大概了解了lisp中的链表是什么样的。
lisp中的链表也是由结点组成的,而且与也C语言中很像,结点包含了一个值域和一个指针域。
(cons value addr) 可以构成一个结点。
然而与C语言中不同的是,value和addr 的分工并不是那么的明确。实际上,value可以是另一个结点,而addr 也可以是一个值
比如: (cons (cons 1 2 ) 3) 返回的便是 ((1.2).3)
在值域,它是另一个结点,而在指针域,它是一个值