作为一名具有扎实数学背景的工科学生,我在大学里处理过类似的问题:
- (数值)模拟
- 人工智能问题
- 机器人学
- 控制系统
- 还有更多
正如你所看到的,有些只是数值计算,有些则需要处理一些符号。
目前我正在使用 Java,但我对它不是很满意(说不出具体原因,可能只是个人喜好),现在我正在寻找一种编程语言,我可以用它轻松地进行新算法的原型设计,例如像在 Python 中那样,而且不用关心底层的东西,但如果需要,它也能够加速运行,例如通过并发/并行编程等。(用 Python 编写然后在 C/C++ 中重写并不是我首选的选项……)
总结一下:
- 易于原型设计,但
- 能够加速算法
- 语法没有像 Java 那样繁琐的东西
- 语法易于阅读(我知道大多数语言都可以做到这一点,但有些语言更鼓励你这样做……)
我在 http://rosettacode.org/ 等网站上浏览了一下,并挑选了 2 或 3 个最喜欢的:Go、Lisp(也许还有 Haskell),但也欢迎其他建议。
回答:
如果你花时间优化,使用 SBCL 的 Common Lisp 会非常快。
为什么它适合你的需求?
- 符号计算
- 良好的数字处理能力
- 默认编译成本地代码。