小编Ros*_*oto的帖子

如何使用Bash制作Echo服务器?

如何使用nc,echo,xargs等工具编写echo服务器bash脚本,这些工具能够同时处理来自多个客户端的请求,每个客户端都具有持久连接?

我到目前为止最好的是

nc -l -p 2000 -c 'xargs -n1 echo'
Run Code Online (Sandbox Code Playgroud)

但它只允许一个连接.

bash tcp netcat

40
推荐指数
3
解决办法
5万
查看次数

Erlang的Eratosthenes筛

我正在学习Erlang.作为练习,我选择了生成素数的Eratosthenes算法.这是我的代码:

-module(seed2).
-export([get/1]).

get(N) -> WorkList = lists:duplicate(N, empty),
          get(2, N, WorkList, []).

get(thats_the_end, _N, _WorkList, ResultList) -> lists:reverse(ResultList);
get(CurrentPrime, N, WorkList, ResultList) -> ModWorkList = markAsPrime(CurrentPrime, N, WorkList),
                                              NextPrime = findNextPrime(CurrentPrime + 1, N, WorkList),
                                              get(NextPrime, N, ModWorkList, [CurrentPrime|ResultList]).


markAsPrime(CurrentPrime, N, WorkList) when CurrentPrime =< N -> WorkListMod = replace(CurrentPrime, WorkList, prime),
                                                                 markAllMultiples(CurrentPrime, N, 2*CurrentPrime, WorkListMod).

markAllMultiples(_ThePrime, N, TheCurentMark, WorkList) when TheCurentMark > N -> WorkList;
markAllMultiples(ThePrime, N, TheCurrentMark, WorkList) -> WorkListMod = replace(TheCurrentMark, WorkList, marked),
                                                           markAllMultiples(ThePrime, …
Run Code Online (Sandbox Code Playgroud)

erlang sieve-of-eratosthenes

17
推荐指数
2
解决办法
3594
查看次数

Clojure和Python中的懒惰无限序列

以下是我在Clojure和Python中为懒惰无限序列的Fibonacci数找到的最佳实现:

Clojure的:

(def fib-seq (lazy-cat [0 1]
 (map + fib-seq (rest fib-seq))))
Run Code Online (Sandbox Code Playgroud)

样品用量:

 (take 5 fib-seq)
Run Code Online (Sandbox Code Playgroud)

蟒蛇:

def fib():
 a = b = 1
 while True:
  yield a
  a,b = b,a+b
Run Code Online (Sandbox Code Playgroud)

样品用量:

for i in fib():
  if i > 100:
    break
  else:
    print i
Run Code Online (Sandbox Code Playgroud)

显然,Python代码更直观.

我的问题是:在Clojure中有更好的(更直观和简单的)实现吗?

编辑

我正在Clojure Prime Numbers上打开一个跟进问题

python clojure

15
推荐指数
5
解决办法
8795
查看次数

使用Clojure进行服务器编程

如何在Clojure中实现10k连接echo服务器?

clojure.contrib.server-socket不是答案,因为它为每个连接创建一个新的OS线程.

concurrency clojure

14
推荐指数
1
解决办法
4027
查看次数

Haskell中函数的序列化

有没有办法在Haskell中序列化(读/显示)函数?

举例来说:

:t (+1) 
(+1) :: Num a => a -> a
Run Code Online (Sandbox Code Playgroud)

我希望能够有类似的东西:

read "(+1)" :: Num a => a -> a
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会引发错误:

Could not deduce (Read (a -> a)) arising from a use of `read'
from the context (Num a)
  bound by an expression type signature: Num a => a -> a
  at <interactive>:1:1-30
Possible fix:
  add (Read (a -> a)) to the context of
    an expression type signature: Num a => a -> a
  or add an instance …
Run Code Online (Sandbox Code Playgroud)

haskell

11
推荐指数
2
解决办法
1001
查看次数

Clojure素数懒惰序列

以下Python代码的Clojure等价物(对于精确算法)是什么?

from itertools import count
from math import sqrt

def prime_gen():
   primes = []
   for n in count(2):
       if all(n%p for p in primes if p <= sqrt(n)):
           primes.append(n)
           yield n
Run Code Online (Sandbox Code Playgroud)

python clojure

8
推荐指数
1
解决办法
2868
查看次数

是否有Node.js Net API的C++实现?

Node.js有一个非常好的和深思熟虑的Net API.我不知道有没有好的C++ 实现该API,例如为lua LuaNode做的?

c++ node.js

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

JVM 如何访问文件系统

我和我的老板发生了争执,他确信 JVM 使用 JNI 来访问诸如文件系统之类的本机事物。我认为他错了,因为 JVM 本身是本机代码,它直接与操作系统通信——它不需要 JNI 样板来访问文件系统。

请帮我澄清JVM是如何工作的

java java-native-interface jvm

4
推荐指数
1
解决办法
2523
查看次数