- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一些看起来像这样的 xml:
<grammar>
<l>
<f form="paradāra"><s stem=""/><m meaning="anothers wife; adultery"/></f>
<f form="abhimarśeṣu"><s stem="" meaning=""/><m meaning=""/></f>
<f form="pravṛttān"><s stem="" meaning=""/><m meaning=""/></f>
<f form="mahipatis"><s stem="" meaning=""/><m meaning=""/></f>
</l>
<l>
<f form="udvejana"><s stem="udvejana" meaning="agitation, fear"/><m meaning=""/></f>
<f form="karais"><na><ins/><pl/><mas/></na><s stem="kara#1" meaning="action"/><m meaning="by action"/></f>
<f form="daṇḍais"><na><ins/><pl/><mas/></na><na><ins/><pl/><neu/></na><s stem="daṇḍa" meaning="punishment"/><m meaning="by punishment"/></f>
<f form="cihnayitvā"><s stem="" meaning="having marked"/><m meaning=""/></f>
<f form="pravāsayet"><v><cj><ca/></cj><sys><prs><md><op/></md><para/></prs></sys><np><sg/><trd/></np></v><s stem="pravas"/><m meaning="to put on, dress"/></f>
</l>
</grammar>
现在我通过运行 (xml-parse-region) 将其转换为 S 表达式。它返回如下内容:
((grammar nil "
" (l nil "
" (f ((form . "paradāra")) (s ((stem . ""))) (m ((meaning . "anothers wife; adultery")))) "
" (f ((form . "abhimarśeṣu")) (s ((stem . "") (meaning . ""))) (m ((meaning . "")))) "
" (f ((form . "pravṛttān")) (s ((stem . "") (meaning . ""))) (m ((meaning . "")))) "
" (f ((form . "mahipatis")) (s ((stem . "") (meaning . ""))) (m ((meaning . "")))) "
") "
" (l nil "
" (f ((form . "udvejana")) (s ((stem . "udvejana") (meaning . "agitation, fear"))) (m ((meaning . "")))) "
" (f ((form . "karais")) (na nil (ins nil) (pl nil) (mas nil)) (s ((stem . "kara#1") (meaning . "action"))) (m ((meaning . "by action")))) "
" (f ((form . "daṇḍais")) (na nil (ins nil) (pl nil) (mas nil)) (na nil (ins nil) (pl nil) (neu nil)) (s ((stem . "daṇḍa") (meaning . "punishment"))) (m ((meaning . "by punishment")))) "
" (f ((form . "cihnayitvā")) (s ((stem . "") (meaning . "having marked"))) (m ((meaning . "")))) "
" (f ((form . "pravāsayet")) (v nil (cj nil (ca nil)) (sys nil (prs nil (md nil (op nil)) (para nil))) (np nil (sg nil) (trd nil))) (s ((stem . "pravas"))) (m ((meaning . "to put on, dress")))) "
") "
"))
我现在要做的是提取所有以 (s ... ) 开头的子节点,并将它们收集到一个单独的缓冲区中。喜欢:
(s ((stem . "udvejana") (meaning . "agitation, fear")))
代码会是什么样子?递归遍历树?昨天我走到了第一个 (l ... ) 节点,但由于停电,我丢失了代码。希望你们中的一些人有一些建议!
最佳答案
你只需要基本的递归:
(defun rec-filter (predicate seq &optional acc)
(cond ((null seq)
acc)
((consp seq)
(append (rec-filter predicate (car seq) nil)
(rec-filter predicate (cdr seq) nil)
(if (funcall predicate seq)
(cons seq acc)
acc)))
(t
acc)))
(rec-filter
(lambda (x) (eq (car x) 's))
tree)
;; =>
;; ((s ((stem . "")))
;; (s ((stem . "")
;; (meaning . "")))
;; (s ((stem . "")
;; (meaning . "")))
;; (s ((stem . "")
;; (meaning . "")))
;; (s ((stem . "udvejana")
;; (meaning . "agitation, fear")))
;; (s ((stem . "kara#1")
;; (meaning . "action")))
;; (s ((stem . "daṇḍa")
;; (meaning . "punishment")))
;; (s ((stem . "")
;; (meaning . "having marked")))
;; (s ((stem . "pravas"))))
关于xml - 使用 emacs elisp 解析 XML 并查找嵌套属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28478235/
以下伪代码的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 .在这个文件中有
我是一名优秀的程序员,十分优秀!