Lisp编程中的变量

4

我想要写一个函数叫做A(n)

这个函数应该有一个列表

(答案是n)

n可以是列表中的任何整数,当我输入(A 4)

它应该显示为(答案是4)

我不确定该如何构造它,我在考虑使用setq和list函数

但是如何构建它令我感到困惑,我只是一个尝试学习Lisp的新手,有什么想法或书籍可以推荐吗?非常感谢。

2个回答

4
(defun A (n) 
  (list 'the 'answer 'is n))
(A 4)
=> (the answer is 4)

5
就我个人而言,我更喜欢使用quasi引用来表示此内容:\(答案是,n)`。 - C. K. Young
1
@ChrisJester-Young 必须提到的是,这种方式可以返回文字 conses。 例如,如果代码是`(,n is what the answer is)这可能会导致非明显的错误。请参见为什么这个mapcan会导致我的REPL冻结? - Menschenkindlein
当然,决定使用list/cons还是字面量时应该注意相同的警告。由于我是一个Schemer,我的习惯是默认返回不可变数据,并仅在逐个案例基础上启用可变性。当然,除非明确记录为新实例或可以改变,否则我不会改变其他函数返回的对象。 - C. K. Young

0

你问题的另一个部分是要读哪些书。通常人们推荐阅读 "Practical Common Lisp",这是一本友好且易于阅读的介绍Common Lisp的书籍。然后还有Cliki.net上的 "Getting Started" 文章。这应该足以让你开始使用这种语言。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接