关于制作游戏服务器,似乎Erlang总是作为一种"为这种东西而构建"的语言,具有可扩展性和并发性.我没有Haskell和Erlang的经验,但从表面上看它们看起来是一样的.看看Haskell的文档,似乎它支持多处理器的可扩展性和并发性,而Haskell被认为是一种更加可靠的语言,并且具有明显更好的社区.那么,我的问题是,Haskell被认为是像Erlang一样的服务器构建解决方案吗?
这是我一直想知道的:为什么PHP比Java或C#慢,如果所有这三种语言都被编译成字节码然后从那里执行?我知道通常PHP会根据每个请求重新编译每个文件,但即使你将APC(字节码缓存)带入图片中,性能也远不及Java或C#(尽管APC大大改进了它).
编辑:我甚至没有在网络层面谈论这些语言.我在谈论他们数字运算时的比较.甚至不包括启动时间或类似的东西.
另外,我不是根据这里的回复做出某种决定.PHP是我的首选语言; 我只是对它的设计感到好奇.
我一直在阅读这些内容,它们在.NET世界中非常突出.为什么没有任何Web框架可以在Ruby,Python或PHP中实现任何这些模式?是因为它只适用于基于组件的框架,比如ASP.NET吗?或者他们采用它的速度很慢?
是否可以使用PHP函数的正则表达式array_key_exists()?
例如:
$exp = "my regex";
array_key_exists($exp, $array);
Run Code Online (Sandbox Code Playgroud)
谢谢!
如果我有一个充满了许多require语句的node.js应用程序,我该如何将它编译成一个.js文件?我必须手动解析require语句并确保以正确的顺序加载类.是否有一些工具可以做到这一点?
让我澄清一下.
在node.js上运行的代码不是特定于节点的.在只有我做那件事没有直接的浏览器当量使用require,这就是为什么我问.它没有使用任何节点库.
在Python(和其他)中,您可以通过在函数中使用'yield'运算符来递增地处理大量数据.在PHP中以类似的方式做什么?
例如,假设在Python中,如果我想读取一个可能非常大的文件,我可以一次一行地处理每一行(这个例子是设计的,因为它与'for file in file_obj基本相同) "):
def file_lines(fname):
f = open(fname)
for line in f:
yield line
f.close()
for line in file_lines('somefile'):
#process the line
Run Code Online (Sandbox Code Playgroud)
我现在正在做的(在PHP中)是我正在使用私有实例变量来跟踪状态,并且每次调用函数时都会相应地执行操作,但似乎必须有更好的方法.
我只使用了3种函数式语言 - scala,erlang和haskell,但在所有这三种语言中,构建列表的正确方法是将新数据添加到前面然后反转它而不是仅仅追加到最后.当然,您可以附加到列表,但这会导致构建一个全新的列表.
为什么是这样?我可以想象这是因为列表在内部实现为链接列表,但为什么它们不能仅作为双链表实现,所以你可以追加到最后没有惩罚?是否有某些原因所有功能语言都有此限制?
当我尝试使用SQLAlchemy将新记录插入数据库并且我没有填写所有值时,它会尝试将它们插入为"无"(而不是省略它们).然后它抱怨"不能为空"错误.有没有办法让它只是省略sql查询中的列,如果我在声明实例时也省略了它们?
php ×4
javascript ×2
node.js ×2
python ×2
browser ×1
cryptography ×1
erlang ×1
haskell ×1
md5 ×1
mvp ×1
mvvm ×1
regex ×1
sqlalchemy ×1