我主要使用mathematica作为数学工作台,并编写相对较小的ad-hoc程序.然而,我正在设计一个我打算在Mathematica中编程的系统.我需要将数据存储在树中,并搜索和遍历树.虽然我知道如何实现树,但我更喜欢标准的,经过测试的代码.我在Mathematica用户维基上查看了基本数据结构的类型.我没有找到,尽管Mathematica文档中有一个小例子.
现在问我的问题:
是否有可用的数据结构(开源)包?
您在数据结构方面使用了什么方法?逐步开发自己的util包?
(这不是一个问题,只是一个评论.也许......缺乏(大量可用的)开源软件包是Mathematica没有应有的动力的原因.我害怕鸡/蛋问题.)
Leonid在他的书第四章中写道:"......模块,块和With.这些结构在Mathematica Book和Mathematica Help中有详细解释,所以我在这里只会说几句......."
从我所读到的(能够找到)我仍然在黑暗中.对于打包的函数我(简单地)使用Module,因为它可以工作,我知道构造.但它可能不是最好的选择.我(从文档中)不清楚何时,何地或为何使用With(或Block).
在接受的问题" Mathematica和MouseListener - 用Mma开发交互式图形 "中,Sjoerd C de Vries演示了可以在3D图形中选择一个对象并改变其颜色.
我想知道是否有可能(以类似的方式)Graphics3D用两个或多个物体(例如两个长方体)来选择一个并改变它的坐标(通过移动或其他方式)?
在Mathematica中测试值是否为Null的最佳/最干净/可取的方法是什么?而不是空的?
例如:
a = Null
b = 0;
f[n_] := If[n == Null, 1, 2]
f[a]
f[b]
Run Code Online (Sandbox Code Playgroud)
得到的结果是:
1
If[0 == Null, 1, 2]
Run Code Online (Sandbox Code Playgroud)
我希望f [b]的2.
我想测试列表是否包含连续的整数.
consQ[a_] := Module[
{ret = True},
Do[If[i > 1 && a[[i]] != a[[i - 1]] + 1, ret = False; Break[]], {i,
1, Length[a]}]; ret]
Run Code Online (Sandbox Code Playgroud)
尽管函数consQ完成了这项工作,但我想知道是否有更好(更短,更快)的方法,最好使用函数式编程风格.
编辑: 上面的函数将连续整数的列表以递减顺序映射到False.我想将此更改为True.
我有一个关于开发Clojure库的问题,这在图书馆开发和分发的建议工作流程中没有得到解答,如下所述:http://clojure-doc.org/articles/ecosystem/libraries_authoring.html
我正在开发一个库,并希望在一个clojure项目中测试它.在这个项目中,我将不得不将开发中的库添加为依赖项.是否有"lein deploy clojars"的替代方案,它将我的库部署到本地存储库?如果是这样,我将如何设置:测试项目中的依赖关系?请注意,我将在项目中使用clojars中的库,我用它来测试正在开发的库.
那么我应该在开发中将Clojure库部署到本地存储库,以便它可以被alpha测试库的项目使用.测试项目应如何解决这个问题.我想知道这是如何影响1)库开发项目的project.clj文件和2)在开发中测试库的项目的project.clj文件.
我想在mma中制作一个迷你编程语言.从文本文件到包中的模块.理想情况下,我应该能够通过另一个包中的函数从Mathematica中生成包和模块.
问题:这可能吗?我正在寻找一个参考或一个例子来启动它.
编辑:例如:
想象一下具有n个整数类型寄存器的存储体.
说明是:
1 Z(n)
2 C(m,n)
3 J(m,n,q)
4 S(n)
每行都有一个地址.第一行1,第二行2等.Z(n)在寄存器n中存储0.寄存器n中的寄存器m的C(m,n)存储值.J(m,n,q)如果值寄存器m等于寄存器n的值则跳转到地址q的行.S(n)将n加1到寄存器n中的值.
然后给出两个工作程序P和QI想要生成连接程序P + Q.
然后给出两个工作程序P和QI想要在P之后生成替换Q.
最后,我想开始尝试递归...这个'迷你项目'的目的.
例:
list:={ Plus[1,1], Times[2,3] }
Run Code Online (Sandbox Code Playgroud)
看着list,我明白了
{2,6}
Run Code Online (Sandbox Code Playgroud)
我想让他们不受评估(如上所述)以便list返回
{ Plus[1,1], Times[2,3] }
Run Code Online (Sandbox Code Playgroud)
后来我想评估列表序列中的函数来获取
{2,6}
Run Code Online (Sandbox Code Playgroud)
未评估的函数的数量list事先是未知的.此外Plus,f[x_]可以存储用户定义的功能list
我希望这个例子很清楚.
做这个的最好方式是什么?
我正在使用Windows 7上的ANTLRWorks开发语法.除非ANTLRWorks具有管理员权限,否则ANTLRWorks调试器无法启动.ANTLRWorks作为一个Java .jar提供,它通过双击文件开始.
问题:如何确保.jar文件以管理员权限运行?
我成功地使用Conductor框架从网站上抓取数据.我使用Chrome浏览器,因此我在项目的根目录中安装了chromedriver.exe.
为了加快速度,我想用无头的PhantomJS浏览器取代Chrome.我按照Stackoverflow问题的答案安装了PhantomJS:PhantomJS和Conductor Framework,并将浏览器更改为@Config中的Browser.PHANTOMJS.
无论我做什么,我都没有结果.
我没有找到如何设置PhantomJS与Selenium或PhantomJS一起使用的文档.
如何使用PhantomJS实现Selenium WebDriver的问题,我们可以将Sikuli与PhantomJS一起使用吗?也没有帮助.
如何用PhantomJS替换Chrome以与Selenium和Conductor一起使用?