几个月前,我遇到了J / K / APL,在解决一些项目问题的同时也很感兴趣。 对于我制作的每一个优雅的20行python解决scheme,都会有一个十分之一的时间在运行的20个字符的 J解决scheme。 我一直热衷于学习一些基本的J,并且在提取词汇方面做了一些尝试,但是发现学习曲线非常陡峭。 对于那些熟悉这些语言的人,你会build议投入一些时间来学习(特别是我在考虑J)吗? 为了满足我的好奇心,我会这样做,而不是为了职业发展或者其他的事情。 有些个人情况要考虑,如果你在乎: 我喜欢math,每天在工作中使用它(作为初创公司的math家),但说实话,我并不觉得受限于我使用的工具(比如python + NumPy),所以我不能用这个借口。 我不希望在金融行业工作,这似乎是K用户的主要呼叫端口。 另外我真的应该把C#作为下一个语言学习,因为它是我工作的主要语言。 所以实际上,J几乎肯定不应该成为我学习的下一个语言。 我对MATLAB非常熟悉,所以使用基于数组的编程语言不会构成巨大的范式转换。 任何来自那些熟悉这些语言的build议将不胜感激。
除了Javascript和Objective-J之间的语言差异之外,卡布奇诺还提供了什么优于SproutCore,反之亦然? 就长期预测而言,SproutCore比卡布奇诺更受“支持”,因为它得到了苹果的支持? 我正试图在两者之间做出select。 我熟悉JavaScript和Objective-C。
数组语言的风景尽pipe令人着迷,却令人困惑不已。 是否有理由selectJ或K或APL或A之一? 这些选项似乎都不是开源的 – 有没有开源的版本? 我很想扩大我的想法,但我仍然感到困惑。
目前我从这里描述的J#库中借用java.math.BigInteger 。 从来没有使用过一个图书馆来处理大整数,这看起来很慢,慢了10倍,即使是超长数字也是如此。 有没有人有更好的(最好是免费的)库,或者这个级别的性能是否正常?
我怎么能做到这一点? 当然,我可以这样做: static bool ByteArrayCompare(byte[] a1, byte[] a2) { if (a1.Length != a2.Length) return false; for (int i=0; i<a1.Length; i++) if (a1[i]!=a2[i]) return false; return true; } 但是我正在寻找一个BCLfunction或一些高度优化的经过validation的方式来做到这一点。 java.util.Arrays.equals((sbyte[])(Array)a1, (sbyte[])(Array)a2); 很好地工作,但它看起来不会像x64一样工作。 请注意我的超快速答案。