有没有办法告诉maxima一个表达总是积极的?下面是一个示例代码段,它会导致maxima向表达式提出问题sin(a)*x:
declare([a,x,y],real); ca: cos(a) = (x / (sqrt(x*x + y*y))); a1: solve(ca,a)[1]; solve(a1,y);
我正在寻找功能风格的算法(或这种算法的参数),这比命令式更快.
我喜欢功能代码,因为它具有表现力,而且比它的命令性吊坠更容易阅读.但我也知道这种表现力可能会花费运行时开销.并不总是由于尾递归等技术 - 但往往它们更慢.
虽然节目我不会去想的功能代码运行成本,因为现在的电脑速度非常快,发展的时间比运行时更为昂贵.此外,对我而言,可读性比性能更重要.然而,我的程序足够快,所以我很少需要以命令的方式解决问题.
有些算法在实践中应该以命令式方式(如排序算法)实现,否则在大多数情况下它们太慢或需要大量内存.在由于像模式匹配整个节目像写在功能语言解析器技术对比度可能多于一个的写入命令式语言的编译器,因为的可能性来优化代码快得多.
但是,是否有任何算法在功能样式上更快或者是否有可能设置这种算法的参数?
algorithm functional-programming scala imperative-programming