如何使用nc,echo,xargs等工具编写echo服务器bash脚本,这些工具能够同时处理来自多个客户端的请求,每个客户端都具有持久连接?
我到目前为止最好的是
nc -l -p 2000 -c 'xargs -n1 echo'
Run Code Online (Sandbox Code Playgroud)
但它只允许一个连接.
我正在学习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) 以下是我在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上打开一个跟进问题
如何在Clojure中实现10k连接echo服务器?
clojure.contrib.server-socket不是答案,因为它为每个连接创建一个新的OS线程.
有没有办法在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) 以下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) Node.js有一个非常好的和深思熟虑的Net API.我不知道有没有好的C++ 只实现该API,例如为lua LuaNode做的?
我和我的老板发生了争执,他确信 JVM 使用 JNI 来访问诸如文件系统之类的本机事物。我认为他错了,因为 JVM 本身是本机代码,它直接与操作系统通信——它不需要 JNI 样板来访问文件系统。
请帮我澄清JVM是如何工作的