根据维基百科的说法,我在Python中实现了Tarjan的强连接组件算法,但它无法正常工作.算法很短,我找不到任何区别,所以我不知道它为什么不起作用.我试图检查原始文件,但找不到它.
这是代码.
def strongConnect(v):
global E, idx, CCs, c, S
idx[v] = (c, c) #idx[v][0] for v.index # idx[v][1] for v.lowlink
c += 1
S.append(v)
for w in [u for (v2, u) in E if v == v2]:
if idx[w][0] < 0:
strongConnect(w)
# idx[w] = (idx[w][0], min(idx[v][1], idx[w][1])) #fixed, thx
idx[v] = (idx[v][0], min(idx[v][1], idx[w][1]))
elif w in S:
idx[v] = (idx[v][0], min(idx[v][1], idx[w][0]))
if (idx[v][0] == idx[v][1]):
i = S.index(v)
CCs.append(S[i:])
S = S[:i]
E = …Run Code Online (Sandbox Code Playgroud) 我想做什么:我想在Scala中为几个应用程序(很快就是Java的jar库)添加通信功能,我希望以最轻松的方式完成它,没有Tomcat,战争,GET的路径请求,RPC服务器等
我做了什么:我一直在检查一些库,如Jetty,JAX-RS,Jackson等.但后来我看到了这些示例,它们通常涉及许多不同的文件夹,用于配置,WSDL文件等.大多数示例缺乏主要方法,我没有清楚地了解他们可能有多少额外要求(例如Tomcat).
我打算做什么:我正在考虑简单地在"服务器"上打开一个套接字来监听,然后连接"客户端"并在两个方向上传输一些JSON.这应该是相当标准的,以便我可以以兼容的方式使用其他编程语言(例如Python).
我在问:我想知道是否有一些库让这更容易.不一定使用原始套接字,只是在几行中设置一些进程通信,可能不像Node.js那么简单,但类似的东西.
额外奖励:这很酷
但是我现在并不需要任何这些.
我想定义一个从Iterator[T]我定义的类的隐式转换:ProactiveIterator[A].
问题不在于如何做到,而是如何正确地做到这一点,即在何处放置方法,以使其尽可能透明和不引人注目.理想情况下它应该是从隐式转换String到StringOpsin scala.Predef如果转换是从库中的类转换到其他类,那么它可以在该类中定义,但是AFAIK在这里是不可能的.
到目前为止,我已经考虑添加一个包含这些转换的对象,类似于JavaConversions,但是更好的选项可能是可能的.