4

我正在尝试做这样的事情:

* Define some functions
#+begin_src python :noweb_ref defs
   def f1(a,b,c):
     return True
   def f2(d,e,f):
     return False
#+end_src

* Use them in a results-exported block later
#+begin_src python :results output :exports both :tangle yes
<<defs>>
print "test results:"
print f1(1,2,3)
#end_src

我想要发生的是在评估块以产生导出输出时,将 <<defs>> 扩展为缠结样式。实际发生的是 <<defs>> 被逐字评估并导致语法错误。

当将这样的块与输出文件纠缠在一起时,一切正常,但是当我导出缓冲区时,我不知道如何做同样的事情。

建议?

4

2 回答 2

5

我不确定是否真的理解你的意思......但是

1)你错过了一个noweb:yes标题参数

2)你可以<<func()>>用来插入评估func的结果(而不是func的代码)——这就是我不确定你真正想要什么的地方。

于 2013-03-18T19:55:56.513 回答
2

您也可以使用:noweb no-export. 这显示了导出文件中的 noweb-syntax,但在评估或纠缠文件时扩展了代码块。

:noweb strip-export如果您只想展示一个算法,那就太好了:

<<prep>>
result = A + B
<<plot>>

导出的文件然后显示:

result = A + B
于 2013-05-28T12:49:30.600 回答