小编use*_*349的帖子

Java 8:流和Eratosthenes的Sieve

Eratosthenes的Sieve可以在Haskell中非常巧妙地实现,使用懒惰生成无限列表,然后从尾部删除列表头部的所有倍数:

primes :: [Int]
primes = sieve [2..]
sieve (x:xs) = x : sieve [y | y <- xs, y `mod` x > 0]
Run Code Online (Sandbox Code Playgroud)

我正在尝试学习如何在Java 8中使用流,但我想出是否有一种方法可以在Java中实现与上面的Haskell代码相同的结果.如果我将Haskell惰性列表视为等同于Java流,似乎我需要使用以2为首的流并生成一个删除了所有2的倍数的新流,然后获取该流并生成所有流的新流删除3的倍数,并...

我不知道如何继续.

有没有办法做到这一点,或者当我试图将Java流视为与Haskell列表相当时,我是在欺骗自己?

java primes haskell sieve-of-eratosthenes java-stream

7
推荐指数
1
解决办法
1087
查看次数

替换applet的替代技术?

我有一个(未签名的)小程序,可以让你绘制一个逻辑电路并在屏幕上测试它(有点像Electronics Workbench),然后它将电路序列化(内部形式,而不是可视化表示)并将其发送到服务器运行一系列自动化测试并生成性能报告的地方.这是一个更大的Web应用程序的一个小但重要的部分.

但是,最新的Java插件现在说:

运行此类未签名的应用程序将在未来版本中被阻止,因为它可能不安全且存在安全风险.

现在,自签名它仍然显然可以工作(现在),但是然后代码运行在沙盒外面,这让我觉得这是一种愚蠢的做事方式,即使我的代码当然完全没有错误!(我可以为您购买桥梁感兴趣吗?)在Oracle网站上进一步阅读我看到:

该平台不会拒绝执行Java应用程序......未来的更新版本可能包含其他更改,以限制不安全行为,如未签名和自签名应用程序."

(听起来这意味着"未来的更新拒绝执行Java应用程序" - 除非您定期向Thwaite或Verisign付款并向用户展示在沙箱外运行的代码.)

他们也说

"即使用户体验中最小的变化有时也很麻烦".

(不开玩笑.)

"我们已经考虑了变化如何影响用户体验.鉴于目前浏览器中Java安全性的环境,代码签名是保护Java用户的有价值的安全控制."

好吧,我不知道如何在这种情况下继续使用Java.球门柱已被移动(再次),现在我正在寻找一个不同的足球队......或者更准确地说,我正在寻找一种替代技术,让我继续做我现在做的事情:拖放电路元件,通过在输入和输出或其他连接之间拖动来创建连接,最后采用图表的内部形式,并以可以解码和执行的形式将其喷射到服务器,最好是通过创建图表的完全相同的代码避免版本化头痛.还有一些安全的东西,它不会破坏本地文件系统或者只是因为我签署了它.

既然甲骨文已经让我的生活成为一场噩梦,那么有人可以建议我应该在哪里寻找下一步吗?

java security applet

5
推荐指数
1
解决办法
2万
查看次数