- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我一直在玩 ELisp,并且在我的代码中再次出现了一个奇怪的错误
我得到的错误是:
Debugger entered--Lisp error: (error "Bad bounding indices: 2, 3")
signal(error ("Bad bounding indices: 2, 3"))
error("%s" "Bad bounding indices: 2, 3")
subseq((quote (2 2 2 2)) 2 3)
(matrix-from-values 1 number-of-columns-on-output (subseq (nth 2 matrix) (+ (* row-index number-of-columns-on-input) start-column) (+ (* row-index number-of-columns-on-input) end-column)))
(let ((number-of-columns-on-input (nth 1 matrix)) (number-of-columns-on-output (- end-column start-column)) (row-index (- row 1))) (matrix-from-values 1 number-of-columns-on-output (subseq (nth 2 matrix) (+ (* row-index number-of-columns-on-input) start-column) (+ (* row-index number-of-columns-on-input) end-column))))
matrix-extract-subrow((2 2 (quote (2 2 2 2))) 1 2 3)
[..more stuff..]
很可能我没有正确读取错误,但据我了解,解释器从内到外评估我的函数(“(矩阵..[blah-blah]”东西)并绊倒:
subseq((quote (2 2 2 2)) 2 3)
但是,如果我进入 *scratch* 缓冲区并运行:
(subseq (quote (2 2 2 2)) 2 3)
运行正常
最佳答案
您混淆了值 和表达式。在源代码中您编写表达式,而在上面的调试器输出中您看到的是值。 eval
获取一个表达式并返回相应的值,而 quote
可用于获取一个值并将其转换回仅返回该值的(普通)表达式。
所以当你看到 subseq((quote (2 2 2 2)) 2 3)
时,这意味着 subseq
被调用了一个值 (quote (2 2 2 2))
,例如通过计算 (quote (quote (2 2 2 2)))
等表达式获得。
你剥离了其余的回溯,但看看
matrix-extract-subrow((2 2 (quote (2 2 2 2))) 1 2 3)
好像你有类似的地方
... '(2 2 '(2 2 2 2)) ...
应该是什么
... '(2 2 (2 2 2 2)) ..
相反。
关于lisp - 为什么我在 Elisp 中索引列表时遇到问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46946942/
以下伪代码的elisp代码 if "the emacs version is less than 23.1.x" do something else something-else 写成 (if
我想使用雅虎从 Emacs Lisp 程序中获取股票价格。我有两个问题。 我如何制作http GET? 在 Elisp 中存储数据的最佳方法是什么,以便我可以对数据进行比较?换句话说,我应该使用一个哈
是的,我知道 emacs 分析器功能。我正在寻找类似于 time 的东西bash 中的关键字,例如: (time (myfunc)) 这将返回或打印 myfunc 所花费的时间称呼。有这样的事情吗?
您如何编写一个应该绑定(bind)到按键的 elisp 函数,该函数默认情况下不提示,但在 Ctrl-u 之前会提示用户输入参数。类似的东西(这是错误的语法,但我希望你明白)? (defun my-
在我自己编写的函数中,我想调用命令 compile 但让它以交互方式运行,就好像我已经完成了 Meta-x compile .仅仅调用 (compile) 并不像预期的参数那样工作。那么如何强制 em
我看到了 buffer-has-markers-at至少会告诉是否有指向某个位置的标记,但它不仅自 24.3 以来已被标记为过时,而且不提供实际获取标记对象的方法。 看着 the C source ,
当用户单击链接时,我有以下代码来调用 elisp 函数“myfun”: #+BEGIN_SRC elisp :results output raw (defun myfun(filepath li
emacs 是否支持不适合整数的大数字?如果是这样,我该如何使用它们? 最佳答案 Emacs Lispers frustrated by Emacs’s lack of bignum handling
什么是 elisp 对 Python 的等效项 range(start, end, [step]) ? 最佳答案 number-sequence类似于python的range但它的输出却大不相同。 例
相当于 {'a':1, 'b':2} 之类的 Python 字典是什么意思?在省略? 再说一次,elisp 有任何 map-reduce api 吗? 最佳答案 除了关联列表,(算法复杂度适合小表,大
我已经编写了类似于 progn 的函数(实际上是一个宏,但无论如何)。如何告诉 emacs 这个函数应该像 progn 一样缩进? 最佳答案 应该这样做 (put 'myfunc 'lisp-inde
是否有一个 emacs-lisp 命令可以用来用 gnuplot 绘制一组数字,就像我可以在 Excel 中根据数字数组创建简单的折线图一样? 例如,我想要一个名为 plot-with-gnuplot
我有这段工作代码 (setq block_id nil) (setq myHash (make-hash-table :test 'equal)) (puthash "5" "a" myHash) (
如何在 elisp 中的一个 block 中一个接一个地运行多个命令。像这样但不准确, ((message "first message") (message "second message"))
在 elisp 中, (cons 1 2) `returns` (1 . 2) (list 1 2) `returns` (1 2) 两个输出之间有什么区别? 最佳答案 (cons 1 2)创建一个像
我想编写一个需要文件名作为参数的脚本。我想利用“ido-find-file”来获取文件,因为它是这样的这是选择文件名的好方法,但我不想打开该文件因此,只需将其用作我的函数的参数即可。 最佳答案 ido
我想编写一个需要文件名作为参数的脚本。我想利用“ido-find-file”来获取文件,因为它是这样的选择文件名的好方法,但我不想打开文件因此,只需将它用作我的函数的参数即可。 最佳答案 ido-fi
我使用以下代码运行“ls -l ./”并在暂存缓冲区中获取结果。 (start-process "my-process" "*scratch*" "ls" "-l" "./") 如何在剪贴板或其他东西
我有一个文本文件,其中包含相关内容/段落。假设我从文本中剪切/杀死段落 A。我想编写一个在这种情况下调用的函数,因此相关的段落——比如说 B——也被删除了。一个很好的例子是其中包含引用/引用的文档。
Emacs 版本。 25.1.1 所有 emacs 源文件都在文件夹中:...\emacs\share\emacs\25.1\lisp\ 假设我在 emacs 文件中打开 网址.el .在这个文件中有
我是一名优秀的程序员,十分优秀!