查看对语法变更的说明 Upgrading to Org 8.0 or the current master branch
#+attr_latex: :width 5cm
#+attr_beamer: :options width=5cm
#+attr_html: :width 200px`
然后按照链接找到第14章, The Org Manual: Working with source code, 整个一个章节中都没有关键词plist.
cireu
2
在lisp里,形如:keyA valA :keyB valB
的就叫plist,全称property list。
org manual里把这种block的修饰参数叫做header arguments。明显org srcblock的header argument 是plist样式写的
就是按照plist的样子写attribute lines
1 个赞
cireu
3
顺带科普下alist, associated list
((keyA . valA) (keyB . valB))
但在elisp里list的本质就是nested cons 即
(equal '(a . (b)) '(a b))
甚至广义的plist也不一定使用keyword作key
(plist-get '(a b c d) 'a) ;; => 'b
2 个赞
alist科普得好, list的本质, 看晕了.
(equal '(a . (b)) '(a b))
比较复杂, nested cons? nested constants?
cireu
5
cons => cons pair, cons是construct的缩写
cons pair就是二元组,但是二元组只能存两个数据,怎么存列表呢。于是就有人想了个办法,让二元组的cdr储存另外一个二元组,这样一环套一环,就能储存变长数据了(list)了
(equal '(1 2 3 4 5)
'(1 . (2 . (3 . (4 . (5 . ()))))))
2 个赞
看过的一本快速入门list的资料上是wiki Books Lisp 入门 - 维基教科书,自由的教学读本
比如car, cdr, 叶文彬的那个简明教程, 絮絮叨叨, 云里雾里, wiki books就两句话:
car是first是古写法, cdr是rest的古写法.
cireu
7
为何唐突科普是因为当val为(elem1 elem2 elem3)
这样的list时,alist可能会被打印成
((keyA elem1 elem2 elem3) (keyB ...))
看着就像普通的list,但语义上还是alist
1 个赞