大规模代码编辑
Wolfram语言最强大的功能之一,就是它可以运用于任何规模的程序——从不到一行代码,到数百万行代码的规模。在过去的几年中,我们一直在努力扩展对于大型Wolfram语言程序的支持。使用LSP(语言服务器协议),我们为大多数标准外部IDE提供了一项功能,可以对Wolfram语言进行语法修饰和其他自定义信息。
在13.1版本中,我们也增加了一些新功能,可以让笔记本中的大型代码编辑变得更加便捷。首先,也是大家广泛要求的一项是,代码区块的增加缩进和减少缩进。选择你想进行增加/减少缩进的行,按tab或shift+tab就可以对它们进行缩进
自从6.0版本之后,我们就能用笔记本编辑系统处理.wl文件包(还有.wls底稿文件)。13.1版本中的一个新默认功能是对出现在基础文件中的所有代码行进行编号(是的,我们会考虑到非代码单元格的存在,正确对齐行号)
举个例子,现在如果你从Get或相关函数中发现了语法错误,你可以立即使用它报告的行号,从而找到它在基础文件中的位置。
在笔记本中记录
在12.2版本中,我们引入了Canvas,作为在笔记本中互动绘画的便捷界面。在13.1版本中,我们引入了可以在任何单元格顶部切换画布的功能。
在给定的单元格中,选中该单元格,点击,这样你就得到了一张画布:
现在你可以利用绘画工具在画布上创建注解,并覆盖在原有内容上:
如果你要对该单元格求值,覆盖的内容依然存在。(你可以使用Normal,从而避免“画布包装“。)
树状图还在继续增长
在12.3版本中,我们引入了Tree,作为Wolfram语言中一个新的基础构成。在13.0版本中,我们为树状图增加了多种不同风格的选择。在13.1版本中,我们添加了更多风格以及许多新的基础功能。
13.1版本中,对于基础Tree构成的重要更新是,通过将其放入一个关联体系中,能够为每个分支节点命名:
所有的树状图函数现在包含对关联体系的支持:
在树状图的多种用途之中,节点标签至关重要。但特别是在更抽象的应用中,人们往往想要处理未加标签的树状图。在13.1版本中,UnlabeledTree函数(几乎类似UndirectedGraph函数)可以采用一个有标签的树状图,进而将几乎所有能看到的标签删除。以下是一个标准带标签的树状图:
以下是类似的未标签版:
在12.3版本中,我们引入了ExpressionTree,将树状图从一般的符号表达中提取出来。我们计划设计一种更加广泛的“特殊树状图”,用于代表不同的特定种类符号表达。我们从13.1版本开始这一进程,比如,通过建立“Dataset树状图“的概念。以下是ExpressionTree将数据集转换为树状图的过程:
以下则是TreeExpression将上述过程“反转”,并生成数据集:
(记住这一规则:*Tree函数将转换为树状图;而Tree*函数则将树状图转化为其他形式。)
以下是更为复杂数据集树状图的“图表绘制”:
新的函数TreeLeafCount可以计算树状图中树叶节点的总数(几乎类似LeafCount对于一般符号表达的作用):
13.1版本中另一个新功能则是RootTree,这一功能通常用于在不检查每个节点的情况下去了解一个树状图的结构。以下是一个随机树状图:
RootTree可以产生一个“靠近根部”的子图:
也可以产生“远离树叶”的子树状图,这种情况会下降至树状图第-2级的元素:
在某些情况下,树状图的风格就是图表的风格——尽管由于树状图的层级本质会产生一些明显的不同。默认情况下,在特定树状图元素中插入的选项只会影响这个树状图的元素:
但可以给定规则,规定子树状图中,该元素之下的指定元素是如何收到影响的:
在13.1版本中,现在可以从细节上控制树状图中节点和边界的风格。以下是一个例子,为母树状图节点的边界提供了样式:
TreeElementStyle之类的选项从元素的位置上决定了元素的风格。但是另一方面,TreeElementStyleFunction会通过将函数应用于每个节点上的数据,从而决定元素的风格。
对于每一个节点,这一函数同时利用了元素的数据和位置信息:
与图表函数VertexShapeFunction类似,TreeElementShapeFunction提供的是一般性机制,用于指定树状图的节点应该如何被渲染。TreeElementShapeFunction这一设置能让每一个节点都显示为一个圈:
全部0条评论
快来发表一下你的评论吧 !