作为一名具有强大数学背景的工科学生,我在大学处理这样的问题:
你可以看到一些只是数字的,其他人必须处理某些类型的符号。 目前我正在使用java,但我对它不是很满意(不能确切地说为什么,可能是个人品味)现在我正在寻找一种编程语言,我可以很容易地对新算法进行原型设计,例如在python中,并不关心低级别的东西,但是如果需要的话,它有能力加快速度,例如并发/并行编程等(用python编写并用C / C ++重写它不是我更喜欢的选项......)
总结一下:
我浏览了一些网站,比如http://rosettacode.org/,并选择了2或3个收藏夹:Go,Lisp(也许是Haskell),但欢迎其他推荐
答案 0 :(得分:6)
使用SBCL的Common Lisp非常快,如果你花时间让它快速。
为什么这适合你想要的?
答案 1 :(得分:4)
我会将python与cython一起使用:http://www.cython.org来加速你的代码。对于符号计算,您有http://code.google.com/p/sympy/
答案 2 :(得分:3)
尝试Clojure;它满足了你的大多数要求。
使用Java库,编译为Java字节码,并具有Java IDE插件,因此您对Java及其生态系统的一些现有知识将派上用场。
非常简洁,易读且易于原型制作非常高。
对不同并发策略的大力支持。
性能越来越快;典型的东西在Java的速度因子2之内,并且通常可以通过最小的混淆变化来快速地完成缓慢的事情(例如,这里和那里使用Java原语的几个类型提示。)
答案 3 :(得分:3)
Common Lisp的替代方案是方案的实现。我最喜欢的是Racket。
当我第一次进入Lisp时,我开始使用计划,最终能够在几天内学会它。另外,Lisp-wise Racket是一种非常完整的语言,在DrRacket中有一个不错的IDE。
答案 4 :(得分:2)
F#怎么样?
F#是原型制作的一种非凡语言,原因如下:
F#具有交互模式,允许您直接评估代码块,而无需编译整个项目。 类型推断有助于保持代码较小,并使重构类型层次结构相对轻松。这在生产代码中可能并不那么重要,但我发现在原型设计过程中非常有价值。 与.NET集成F#可以轻松地对现有产品的扩展进行原型设计。在原型成为产品的常见情况下(由于时间限制),在.NET产品中集成F#代码也很容易。 如果原型设计成为整个开发过程的重要组成部分,那么F#可以真正帮助您加快编码速度。
我认为F#不会产生比其他.NET语言快得多的代码。编程的功能风格,特别是纯度(没有副作用),可以应用于其他编程语言,这意味着在其他语言中编写并发程序同样容易。然而,在F#中这样做“感觉更自然”。
F#具有Option类型,可用于代替空值。在编译时可以保证关于空指针异常的代码可靠性,这是一个巨大的好处。
最后,请注意F#仍在开发中,并且遇到问题,其中一些问题可能随着时间的推移而消失,但不是全部。例如,看看devhawk和Oliver Sturm对此有什么看法(特别是关于线性范围和相互依赖的类,其他问题,如重载,更好的Visual Studio集成已经得到解决)。
这在文章中说明:https://stackoverflow.com/questions/328329/why-should-i-use-f
由JOH