OO系统是Mathematica中OOP的免费开源软件包.通过使用面向对象系统,我希望受益于两全其美(OOP/Functional).
背景:
在OO-System中的格式
object.method[var]
Run Code Online (Sandbox Code Playgroud)
是
object@method[var]
Run Code Online (Sandbox Code Playgroud)
基本上dot变成了alpha.
我正在生成(XML回到)代码.
In[22]:= a /. a -> b
Out[22]= b
Run Code Online (Sandbox Code Playgroud)
按预期工作.
现在我想改变
a
Run Code Online (Sandbox Code Playgroud)
成
a@new[b]
Run Code Online (Sandbox Code Playgroud)
具有以下(不需要的)结果(因为@在Mathematica中保留)
In[23]:= a /. a -> a@new[b]
Out[23]= a[new[b]]
Run Code Online (Sandbox Code Playgroud)
虽然
In[25]:= a /. a -> "a@new[b]]"
Out[25]= "a@new[b]]"
Run Code Online (Sandbox Code Playgroud)
似乎可以做到这一点,现在b仍然没有评估,因此也没有评估表达式.
背景.我想打印一张31 ^(1/2)的会聚表.我对表进行了以下递归定义.(交换31 ^(1/2)黄金比率,下表将包含斐波那契系列).
cf := ContinuedFraction
tf := TableForm
p[-1] = 0; p[0] = 1; q[-1] = 1; q[0] = 0;
a[k_] := cf[Sqrt[31], k][[k]]
p[k_] := a[k]*p[k - 1] + p[k - 2]
q[k_] := a[k]*q[k - 1] + q[k - 2]
s[n_] := Timing[Table[{k, a[k], p[k], q[k]}, {k, 8, 8 n, 8}]] // tf
Run Code Online (Sandbox Code Playgroud)
时间以指数方式快速增长.我不得不alt +.(中止)s [4].
如果您运行以下代码片段:
Manipulate[
Graphics3D[
{Cuboid[{{-1, -1, -1}, {1, 1, 1}}], Sphere[{5, 5, 5}, 1]},
ViewPoint -> {1, 1, a}, AxesOrigin -> {0,0,0}
],
{a, 1, 100}
]
Run Code Online (Sandbox Code Playgroud)
并使用滑块将视点从 (1,1,1) 移动到 (1,1,100),您将看到一段时间后对象的大小保持固定。
( 编辑: )
背景:为了支持我对伽罗瓦理论的研究,我想从多项式中计算伽罗瓦群.这个功能在Mma中并不容易获得,所以我询问并建议在Mma(或其他Sage/Pari)中使用galois包.galois包可以从这个位置下载.http://library.wolfram.com/infocenter/Articles/2872/(Galois包是在Mma 3时代写的.)
加载包时galois.m,Mma显示以下消息:
<<galois.m
SetDelayed::write: Tag Arrow in Arrow[Color_,{{x1_,y1_},{x2_,y2_}}] is Protected. >>
SetDelayed::write: Tag Norm in Norm[Poly_,a_Symbol] is Protected. >>
SetDelayed::write: Tag Norm in Norm[Poly_,{a__Symbol}] is Protected. >>
General::stop: Further output of SetDelayed::write will be suppressed during this calculation. >>
Run Code Online (Sandbox Code Playgroud)
问题:(Arrow等等)的简单Unprotect是否足以处理此问题?(我还没有尝试过.我想在修改任何标准软件包之前先等待专家建议).
编辑:重构到Arrow1(或ArrowFnc)后仍然存在问题.这已经过测试
CircleGraph[{a, b, c, d, -a, -b, -c, -d}, F];
Run Code Online (Sandbox Code Playgroud)
(来自随附笔记本中的示例.)不生成图表.
CircleGraph[{a, b, c, d, -a, -b, -c, -d}, F]
Run Code Online (Sandbox Code Playgroud)
(没有;)生成一个附加文本的图形,如FontForm [Symbol,18].箭头应仅包含变量a,b,c等的文本.
进一步的调查表明,FontForm最终被弃用,Mma 没有检测到.见http://reference.wolfram.com/mathematica/ref/FontForm.html
我正在尝试将数据写入现有的Firebase数据库,但未写入任何数据。
有没有可以将数据写入Firebase数据库的示例Java程序?
我所做的事如下:
package org.nilostep.bota.dcp.export;
import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
import com.google.firebase.auth.FirebaseCredentials;
import com.google.firebase.database.*;
import java.io.FileInputStream;
import java.util.HashMap;
import java.util.Map;
public class ReadWriteFirebase {
private static final String DATABASE_URL = " (the url of my database) ";
public static void main(String[] args) throws Exception {
FileInputStream serviceAccount =
new FileInputStream("bota-6e0b33e3f1fe.json");
FirebaseOptions options = new FirebaseOptions.Builder().setCredential(FirebaseCredentials.fromCertificate(serviceAccount)).setDatabaseUrl("https://bota-313fb.firebaseio.com").build();
FirebaseApp.initializeApp(options);
DatabaseReference db = FirebaseDatabase.getInstance().getReference().child("testdata");
Map<String, String> users = new HashMap<>();
users.put("A", "Jaap");
System.out.println(users);
db.setValue(users);
System.out.println(db);
}
Run Code Online (Sandbox Code Playgroud)
}
“ testdata”是数据库根目录下的现有子级。
程序的第二版
public static void main(String[] args) …Run Code Online (Sandbox Code Playgroud) 用正则表达式
(\d+\.\d{2})
Run Code Online (Sandbox Code Playgroud)
我从字符串中提取2位小数的数字
Ams1.74 Rot1.26 Lon1.28
Run Code Online (Sandbox Code Playgroud)
结果将是
1.74 1.26 1.28
Run Code Online (Sandbox Code Playgroud)
现在,我发现字符串AX1和AX2也可能出现在数字之前,我的问题是:我将如何获得
1.74 1.26 1.28
Run Code Online (Sandbox Code Playgroud)
从字符串
AX11.74 Rot1.26 AX21.28
Run Code Online (Sandbox Code Playgroud)
用正则表达式?