- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
Peter Norvig 在 Paradigms of Artificial Intelligence Programming 中提到, 关于 page 50 ,特异性和一致性之间的权衡,以及选择使用 setq 或 setf 将变量更新为值时的权衡。你有什么建议吗?您是否遇到过比可读性更重要的情况?
最佳答案
使用setq比较低级,但是setf的性能不是问题。 setf 允许您(或库编写者)提供自定义 setf 行为,例如设置自定义数据结构的一部分。我说:除非你有理由不这样做,否则到处都使用 setf。
另请参阅 Practical Common Lisp,第 3 章:“SETF 宏是 Common Lisp 的主要赋值运算符。” PCL 可免费在线获取:http://gigamonkeys.com/book/
关于Lisp 风格 : setq vs. setf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/971734/
我有一个关于 Emacs Lisp 的问题。 setq 和 setq-default 有什么区别? 教程说setq在本地缓冲区中生效,而setq-default影响所有缓冲区。 例如,如果我在 ini
自定义Emacs时,是在加载包之前还是之后设置相应的变量? 即, (setq some-variable some-value) (require 'some-package) 或 (require
正如标题所说,我正在尝试将项目附加到名为解决方案的列表中,下面是代码: (defun add-solution (n) (let ((solution)) (do((curre
我遵循我的书“Lisp 之地”中的语法,并且 let 版本仅在传递 *string* 时返回 nil。而“setq”版本返回 string 的反转版本。 (defparameter *string*
我的 .emacs 文件中有很多自定义内容:字体、颜色、窗口大小、键绑定(bind)等。所有这些都有效。 最后,我刚刚添加了一个:(setq case-fold-search nil)。这是一个变量,
我是 lisp 的菜鸟,只用了两周左右... 我有一些用 setq 声明的全局变量:(setq myvar '(WHATEVER)) 还有一个函数应该修改我告诉它的任何变量: (defun MYFUN
我想在 GCL lisp 中做这样的事情: (setq (car '(a 1)) (cdr '(a 1))) 获取结果: (setq a 1) 这或类似的事情可能吗?问候,德克兰 最佳答案 是的,这是
我试图在 Lisp 中编写“最接近”的函数,而不使用 setq/setf 等... 该函数找到给定向量的最近向量(在列表的列表中找到它)。 我试过了,但是没有套装太难了,非常感谢。 最佳答案 通常变量
Peter Norvig 在 Paradigms of Artificial Intelligence Programming 中提到, 关于 page 50 ,特异性和一致性之间的权衡,以及选择使用
我正在使用 GCL 在 Ubuntu 上编程。从各种来源的 Common Lisp 文档中,我了解到 let 创建 local 变量,而 setq 设置 existing 变量。在以下情况下,我需要创
在 Emacs 中评估以下代码时,我得到 (2 3) 作为 x 的最终值。我希望(1 2 3)。我错过了什么? (setq x '(2 1 3)) (sort x ' (setq x '(2 1 3)
非常简单的问题,但让我困惑了一段时间: (setq visible-bell t) 和 (visible-bell t) 两者似乎都有效。 但是 (desktop-save-mode 1) 工作,而
我完全是 Lisp n00b,所以请保持温柔。 我无法理解 CL 关于 [未] 声明的自由变量的想法。我会认为: (defun test () (setq foo 17) ) 将定义一个声明变
我尝试查看相关问题,但找不到关于如何在 Common LISP 中定义变量的直接答案。我使用 sbcl 实现,并且一直在使用教程来帮助我学习这门语言,但出于某种原因,这段代码: ;;print a l
我看到 Practical Common Lisp使用 (defvar *db* nil) 设置一个全局变量。为同样的目的使用 setq 不是可以吗? 使用 defvar 与 setq 有什么优点/缺
我是一个完全的 Lisp n00b,所以请温柔一点。 我很难理解 CL 关于 [未] 声明的自由变量的想法。我会认为: (defun test () (setq foo 17) ) 将定义一个
我需要一些帮助在不使用 SET、SETF 或 SETQ 的情况下用 common lisp 重写这个函数(我也不能使用循环),我希望有人能帮助我。这是代码: (defun apply-values (
我找到了一个 Similar question . 但是我不太明白那个解释。 所以我尝试使用以下示例运行 clisp: [1]> (defvar a 5) A [2]> (+ a 1)
我找到了一个 Similar question . 但是我不太明白那个解释。 所以我尝试使用以下示例运行 clisp: [1]> (defvar a 5) A [2]> (+ a 1)
有 destructuring-bind 但似乎没有 destructuring-setq。是否可以使用 destructuring-bind 来定义它? (let (a b c d) (dest
我是一名优秀的程序员,十分优秀!