Tag: 语言不可知的

XORvariables交换如何工作?

有人可以向我解释如何交换两个variables没有临时variables的作品? void xorSwap (int *x, int *y) { if (x != y) { *x ^= *y; *y ^= *x; *x ^= *y; } } 我知道它做了什么,但是有人能通过它的工作逻辑来引导我吗?

为什么JVM仍然不支持tail-call优化?

两年之后,这个function似乎有了一个原型 实现 , MLVM已经把function列为“原型80%”了一段时间了。 Sun和Oracle在支持尾部呼叫方面没有积极的兴趣,或者只是尾部呼叫“ 在每个function优先级列表中被排在第二位 ”,正如JVM语言峰会 ? 如果有人testing了MLVM构build,并且可以分享一些它的工作效果(如果有的话),我会非常感兴趣。 更新: 请注意,像Avian这样的虚拟机支持正确的tail-calls,没有任何问题。

什么是“一stream”对象?

什么时候在给定的编程语言中,对象或别的东西被称为“第一类”,为什么? 他们与哪些语言不同? 编辑。 当一个人说“一切都是对象”时(比如在Python中),他是否确实是指“一切都是一stream的”?

并发编程和并行编程有什么区别?

并发编程和并行编程有什么区别? 我问谷歌,但没有find任何有助于我理解这种差异的东西。 你能举两个例子吗? 现在我发现这个解释: http : //www.linux-mag.com/id/7411 – 但是“并发是程序的一个属性”vs“并行执行是机器的属性”对于我来说是不够的 – 我还不能说什么是什么。

什么是一个好的unit testing?

我相信你们中的大多数人正在写大量的自动化testing,并且在unit testing时也遇到了一些常见的陷阱。 我的问题是,你是否遵循任何行为准则来编写testing,以避免将来出现问题? 更具体地说: 好的unit testing的特性是什么,或者如何编写testing? 鼓励语言不可知论的build议。

在单个正则expression式中折叠并捕获重复模式

我经常遇到需要从string中获取许多令牌的情况,经过无数次的尝试,我找不到简化过程的方法。 所以我们假设文字是: 启动:testing – testing – LOREM-存有-SIR-doloret – 等 – 等 – 的东西:结束 这个例子里面有8个项目,但是说可能有3到10个项目。 我理想的喜欢这样的事情: start:(?:(\w+)-?){3,10}:end很好,干净,但它只捕获最后一场比赛。 看这里 我通常在简单的情况下使用这样的东西: start:(\w+)-(\w+)-(\w+)-?(\w+)?-?(\w+)?-?(\w+)?-?(\w+)?-?(\w+)?-?(\w+)?-?(\w+)?:end 3组是强制性的,另外7组是可选的,因为最大限制为10,但是这看起来并不“好”,如果最大限制为100并且比赛更复杂,那么写和跟踪将是一个痛苦。 演示 我能做到的最好的: start:(\w+)-((?1))-((?1))-?((?1))?-?((?1))?-?((?1))?-?((?1))?-?((?1))?:end 特别是如果比赛复杂但仍然很长的话更短。 演示 任何人都设法使它作为1正则expression式解决scheme没有编程 ? 我最感兴趣的是如何能够在PCRE中完成,但其他口味也可以。 更新: 目的是通过RegEx单独validation匹配并捕获match 0的单个令牌,而没有任何操作系统/软件/编程语言限制 更新2(赏金): 在@ nhahtdh的帮助下,我通过\G获得了RegExp: (?:start:(?=(?:[\w]+(?:-|(?=:end))){3,10}:end)|(?!^)\G-)([\w]+) 演示甚至更短,但可以描述不重复的代码 我也对ECMA风格感兴趣,因为它不支持\G想知道是否有另一种方法,特别是不使用/g修饰符。

大写与小写

在进行不区分大小写的比较时,将string转换为大写还是小写更有效? 它甚至重要吗? 在这个SOpost中提出,C#对于ToUpper更有效,因为“微软就是这样优化它的”。 但是我也读过这个观点 ,即ToLower和ToUpper的转换取决于你的string包含了多less,而且通常string包含更多的小写字符,这使得ToLower更有效率。 特别是,我想知道: 有没有办法优化ToUpper或ToLower,使其中一个比另一个更快? 在大写或小写string之间进行不区分大小写的比较是否更快?为什么? 有没有任何编程环境(如C,C#,Python,不pipe),哪一个案例显然比另一个好,为什么?

使用ORM或纯SQL?

对于我开发的一些应用程序(后来忘记了),我一直在编写纯SQL,主要针对MySQL。 虽然我已经在Python中像SQLAlchemy一样使用了ORM,但是我并没有坚持太久。 通常这是文件或复杂性(从我的观点来看)阻止我回来。 我看到它是这样的:使用一个ORM的便携性,普通的SQL,如果它只是要使用一种types的数据库。 在开发需要数据库支持的应用程序时,我确实在寻找何时使用ORM或SQL的build议。 考虑一下,使用一个轻量级的包装来处理数据库不一致与使用一个ORM将会好得多。

获得总和为M的N个随机数

我想得到N个随机数,他们的总和是一个值。 例如,假设我想要5个随机数,它们的和为1 那么有效的可能性是: 0.2 0.2 0.2 0.2 0.2 其他可能性是: 0.8 0.1 0.03 0.03 0.04 等等。 我需要这个来创build模糊C-均值的所有物matrix。

将均匀分布转换为正态分布

如何将一个均匀的分布(如大多数随机数发生器产生的,例如0.0和1.0之间)转换成正态分布? 如果我想要一个我select的平均和标准偏差怎么办?