我正在编写一个F#程序,它将字符串解析为AST类型,这是一个有区别的联合.
当我使用fsi(在Mono + Mac OS X上)运行我的代码时,AST以漂亮的格式打印出来.但是当我使用时,printfn "%s" <| ast.ToString()我会得到类似的东西FSI_0002.Absyn+clazz.ToString为所有受歧视的联合类型编写方法将是一项繁重的工作.
如何使值打印方式fsi呢?
在工作中,我们目前使用Subversion for SCM.我已经设置了一个本地git-svn镜像,并将其用作我的主要开发工作区.我现在对基本功能感到满意.团队中的另一个开发人员也想迁移到Git,因此我们正在考虑使用svn存储库的git镜像.我还想和Gerrit一起尝试这个练习.
我想象的设置是这样的:
svn存储库的git镜像.这上的主分支与svn上的主干同步.
对于每个要素,都会创建主题分支.这与审查发生的Gerrit有关.一旦变更集获得批准,Gerrit就会合并主题分支返回主变量.
gitweb或类似的Web应用程序,用于在浏览器上查看存储库.
除了trunk之外,其他分支在subversion上的类似过程.
基本上,我想要的是我只与我的本地git clone和Gerrit webapp交互; 将审查的更改推回到svn应该会自动发生.我如何设置这样的东西?
我正在尝试使用Simple XML序列化程序.我对XML-> Java的反序列化更感兴趣.这是我的代码作为单元测试:
import java.io.StringReader;
import java.io.StringWriter;
import junit.framework.TestCase;
import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Root;
import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;
public class SimpleTest extends TestCase {
public void testWriting() throws Exception {
StringWriter writer = new StringWriter();
Address address = new Address("1234 Main Street", "San Francisco", "CA");
Serializer serializer = new Persister();
serializer.write(address, writer);
System.out.println("Wrote: " + writer.getBuffer());
}
public void testReading() throws Exception {
String input = "<address street='1234 Main Street' city='San Francisco' state='CA'/>";
Serializer serializer = new Persister();
System.out.println("Read …Run Code Online (Sandbox Code Playgroud) 我正努力在48小时内完成自己编写计划的练习.我需要帮助来简化几个功能.
data LispVal = Number Integer
| String String
| Bool Bool
isNumber :: [LispVal] -> LispVal
isNumber [] = Bool False
isNumber [(Number _)] = Bool True
isNumber ((Number _):xs) = isNumber xs
isNumber _ = Bool False
isString :: [LispVal] -> LispVal
isString [] = Bool False
isString [(String _)] = Bool True
isString ((String _):xs) = isString xs
isString _ = Bool False
Run Code Online (Sandbox Code Playgroud)
该isNumber和isString功能有很多共同的结构.我如何分析这个共同的结构?
我需要从线程池创建一个线程,并且需要传递一个任务id - 一个保存在我的Runnable对象中的唯一id - 作为线程名称.
我查看了ThreadFactory界面,但是我无法将任何其他参数作为线程名称传递给创建的线程.另外,我看了DefaultThreadFactory上课.它使用an AtomicInteger来设置线程名称.
我可以将任意字符串传递给工厂并让它使用该字符串作为创建的线程的名称吗?
我正在尝试编写一个简单的RxScala程序:
import rx.lang.scala.Observable
import scala.concurrent.duration.DurationInt
import scala.language.{implicitConversions, postfixOps}
object Main {
def main(args: Array[String]): Unit = {
val o = Observable.interval(1 second)
o.subscribe(println(_))
}
}
Run Code Online (Sandbox Code Playgroud)
运行该程序时,看不到任何打印输出。我怀疑这是因为该线程在Observable.interval模具中产生数字。我注意到waitFor(o)在RxScalaDemo中有一个对的调用,但是我不知道该从何处导入。
如何使该程序始终运行以打印数字序列?