在使用Mathematica的笔记本的过程中,我们常常希望将它的代码和文档功能结合起来,例如自动将符号计算的公式、图形以文档的书写习惯展示出来,同时隐藏生成代码,使文档显示自然协调。
在使用Mathematica的笔记本的过程中,我们常常希望将它的代码和文档功能结合起来,例如自动将符号计算的公式、图形以文档的书写习惯展示出来,同时隐藏生成代码,使文档显示自然协调。
GeneralUtilities`
是Mathematica从版本10开始新加入的一个上下文。其中提供了大量的实用函数,包括代码生成、调试、静态分析、迭代器对象等各个领域,一定程度上弥补了Mathematica基础设施不足的状况。
All problems in computer science can be solved by another level of indirection. [1]
最近在拿Mathematica做一些小东西的时候发现CurrentValue
等函数在动态中刷新不受Refresh
等方式影响。比如
众所周知,Mathematica中虽然使用下标形式非常方便,但如果对下标结构进行直接赋值,它将关联到内部符号Subscript
上。这样,在我们大量清理符号定义的时候可能会漏掉一些定义。类似地,导数Derivative
有同样的问题,比如对于
Mathematica在处理字符时默认总会将所有字符转换为ASCII字符表示,例如π
会转化为\[Pi]
,而像汉字仪
这样的一般字符会转化为\:4eea
。
这种设计固然可以避免某些环境对非ASCII字符不支持的困难,而且在Mathematica环境下会自动转换成原本的字符,但对于一般的文本阅读环境而言,尤其是在代码中使用一些中文文本或者注释时,这样的内容阅读起来根本无法理解。
为了方便在没有Mathematica的环境下也能方便的阅读程序包中的非ASCII的一般字符,下面脚本提供了将\:nnnn
形式的转义序列转换为UTF-8编码下对应的Unicode字符的简单方法