org images的语法

查看对语法变更的说明 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.

在lisp里,形如:keyA valA :keyB valB的就叫plist,全称property list。

org manual里把这种block的修饰参数叫做header arguments。明显org srcblock的header argument 是plist样式写的

就是按照plist的样子写attribute lines

1 个赞

顺带科普下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?

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的古写法.

为何唐突科普是因为当val为(elem1 elem2 elem3)这样的list时,alist可能会被打印成

((keyA elem1 elem2 elem3) (keyB ...))

看着就像普通的list,但语义上还是alist

1 个赞

恩, 晚上学习学习alist, 另外, list的本质不应该是binary tree?

https://zh.wikibooks.org/wiki/Lisp_入門/第三章_構造表

是,字数补丁