在lisp中的好风格:缺点与列表

use*_*329 3 lisp scheme common-lisp

对于成对的东西使用缺点是好的风格还是坚持列表更好?

比如问题和答案:

(list
    (cons
        "Favorite color?"
        "red")
    (cons
        "Favorite number?"
        "123")
    (cons
        "Favorite fruit?"
        "avocado"))
Run Code Online (Sandbox Code Playgroud)

我的意思是,有些东西自然成对出现; 没有必要能够容纳超过两个的东西,所以我觉得缺点是自然的选择.但是,我也觉得我应该坚持一件事(列表).

什么是更好或更容易接受的风格?

Chr*_*ung 9

你在那里有一个关联列表(alist).Alist条目实际上通常是简单的conses而不是列表(虽然这是一个偏好的问题:有些人也使用列表作为alist条目),所以你拥有的很好.虽然,我通常更喜欢使用文字语法:

'(("Favorite color?" . "red")
  ("Favorite number?" . "123")
  ("Favorite fruit?" . "avocado"))
Run Code Online (Sandbox Code Playgroud)

Alists通常使用符号作为键,因为符号是实例化的,因此可以使用assq而不是使用符号来查找符号assoc.以下是它的外观:

'((color . "red")
  (number . "123")
  (fruit . "avocado"))
Run Code Online (Sandbox Code Playgroud)