Tag: erlang

是否有针对Erlang的Sinatra风格的Web框架?

我在Ruby和Rails中编程了很长时间,然后我爱上了Sinatra框架的简单性,这使我能够构建一个页面的Web应用程序。 是否有适用于Erlang的Sinatra等Web框架? 我试过Erlyweb,但它似乎太重量级了。

Erlang中的Apple推送通知(或Ruby中的改进?)

我目前在Ruby服务器上运行Apple推送通知。 我想让一个人去Erlang,因为我想用一个主管来监视它。 有没有人有他们可以帮助我的代码? 这是我的Ruby代码。 我不喜欢这个当前实现的一件事是它似乎没有保持连接 – 它每天断开连接2-3次,而且在我重新连接之后,第一次推送似乎不会通过: context = OpenSSL::SSL::SSLContext.new context.cert = OpenSSL::X509::Certificate.new(File.read(cert)) context.key = OpenSSL::PKey::RSA.new(File.read(cert)) def connect_sockets(server, context) sock = TCPSocket.new(server, 2195) ssl = OpenSSL::SSL::SSLSocket.new(sock,context) ssl.connect return sock, ssl end sock, ssl = connect_sockets(server, context) # this is called to initially connect and also reconnect whenever disconnected. 如果Erlang Push不可行,那么我不介意坚持我的Ruby,只要我可以保持我的连接活着,并且可能通过Erlang监督它。 有谁知道这是否可能?

Erlang actor与OOP对象有何不同?

假设我有一个像这样定义的Erlang actor: counter(Num) -> receive {From, increment} -> From ! {self(), new_value, Num + 1} counter(Num + 1); end. 同样,我有一个像这样定义的Ruby类: class Counter def initialize(num) @num = num end def increment @num += 1 end end Erlang代码以函数式编写,使用尾递归来维护状态。 但是,这种差异的有意义的影响是什么? 对于我天真的眼睛,这两个东西的接口看起来大致相同:你发送一条消息,状态得到更新,你得到了新状态的表示。 函数式编程经常被描述为与OOP完全不同的范例。 但是Erlang actor似乎完全按照对象应该做的:维护状态,封装并提供基于消息的接口。 换句话说,当我在Erlang actor之间传递消息时,它与我在Ruby对象之间传递消息的方式有何不同? 我怀疑function/ OOP二分法的影响比我看到的要大。 有谁可以指出他们? 让我们撇开这样一个事实,即Erlang actor将由VM调度,因此可以与其他代码同时运行。 我意识到这是Erlang和Ruby版本之间的一个主要区别,但这不是我所得到的。 在其他语言中可以实现并发,包括Ruby。 虽然Erlang的并发性可能表现得非常不同(有时甚至更好),但我并不是真的在询问性能差异。 相反,我对问题的function与OOP方面更感兴趣。

生成集合的所有“唯一”子集(不是powerset)

假设我们有一个包含几个子集的Set S : – [a,b,c] – [a,b] – [c] – [d,e,f] – [d,f] – [e] 我们还要说S包含六个独特的元素: a, b, c, d, e和f 。 我们怎样才能找到包含S每个独特元素的S所有可能子集? 函数/方法的结果应该是这样的: [[a,b,c], [d,e,f]]; [[a,b,c], [d,f], [e]]; [[a,b], [c], [d,e,f]]; [[a,b], [c], [d,f], [e]]. 是否有任何最佳实践或任何标准方法来实现这一目标? 我将非常感谢伪代码,Ruby或Erlang示例。

生成集合的powerset而不在Erlang或Ruby中保留堆栈

我想生成一个相当大的集合(约30-50个元素)的powerset,我知道它需要2^n来存储powerset。 是否有可能一次生成一个子集? 即生成具有迭代的集合的powerset,将每个生成的子集保存到磁盘/数据库,将其从堆栈/内存中删除,然后继续生成其他子集? 不幸的是,我没有根据我的需要修改Erlang和Ruby示例。