为什么 mathlib 对 UFD 的定义是这样的:
class unique_factorization_domain (? : Type*) [integral_domain ?] :=
(factors : ? ? multiset ?)
(factors_prod : ?{a : ?}, a ? 0 ? (factors a).prod ~? a)
(prime_factors : ?{a : ?}, a ? 0 ? ?x?factors a, prime x)
Run Code Online (Sandbox Code Playgroud)
(要求通过类型类推断来推断整数域结构)但它对 PID 的定义是这样的:
class principal_ideal_domain (? : Type*) extends integral_domain ? :=
(principal : ? (S : ideal ?), S.is_principal)
Run Code Online (Sandbox Code Playgroud)
扩展整体域结构?有什么不同?旧的结构命令与它有关吗?
我正在编写一个简单的J2ME手机应用程序,我想在退出时保存应用程序的状态.
谷歌搜索引导我到FileConnection类:
FileConnection filecon = (FileConnection) Connector.open("file:///E:/mynewfile.txt");
filecon.create();
// write data to file etc etc
Run Code Online (Sandbox Code Playgroud)
等等.这一切似乎都有效,但它有以下两个缺点.在我的S40手机上,每次运行应用程序时,都会被问到"让应用程序(等等)写入文件?" 或某些这样的事情.我有其他可以保存状态的应用程序(例如保存高分表的游戏),并且每次都不会问我是否可以写入文件.我错过了什么诀窍?
虽然我在这里 - "///E:/mynewfile.txt"文件名也不理想,因为它适用于我的手机,但不能用于我儿子的手机(为什么要这样?) ,这意味着每次我希望程序在新手机上运行时我都要编辑和重新编译应用程序(我可以设想一些程序确定应用程序正在运行的手机的某种程度 - 只会有一些我们使用它 - 然后相应地设置一个指向有效目录中的有效文件的字符串,但这肯定不是它应该如何完成...).大概我不应该写E:/无论如何,但是有某种规范的"应用程序X放置所有数据文件的地方"吗?它是否与设备无关,至少在某种程度上如此?再一次,大概我错过了一个伎俩 - 我要问的两个问题可能是相关的.
我该怎么办?
如果我编译并运行以下(可怕的非同步)Java SE程序,我会感到有点惊讶.
public class ThreadRace {
// this is the main class.
public static void main(String[] args) {
TestRunnable tr=new TestRunnable(); // tr is a Runnable.
Thread one=new Thread(tr,"thread_one");
Thread two=new Thread(tr,"thread_two");
one.start();
two.start(); // starting two threads both with associated object tr.
}
}
class TestRunnable implements Runnable {
int counter=0; // Both threads can see this counter.
public void run() {
for(int x=0;x<1000;x++) {
counter++;
}
// We can't get here until we've added one to counter 1000 …Run Code Online (Sandbox Code Playgroud)