整个夏天我学到了一些PHP和javascript,所以我想我今年也会在数学上有一个良好的开端,对我来说,这将是微积分。我正在观看一些视频并发现了这个:
http://www.youtube.com/watch?v=K6hxKU1kWUs&feature=mfu_in_order&list=UL
他说{{1}}。我从来没有见过这样的函数,所以我想我会问这是否也是用编程语言实现的。
假设我有伪代码:
(f+g)(x)=f(x)+g(x)
是否有任何编程语言允许这样的内容:
function double(x){
return x*2;
}
function triple(x){
return x*3;
}
...等于50?
此外,我是否可以从一个不是10000年的来源学习微积分?
另外,我知道没有编程语言可以使用这种确切的语法,但我的意思是类似的......
答案 0 :(得分:8)
答案 1 :(得分:4)
大多数语言都允许你这样或那样做......
function add(a, b) {
return function(x) {
return a(x) + b(x);
};
}
add(double, triple)(10); // Gives 50
答案 2 :(得分:2)
你可以在Scala中轻松完成:
abstract class F { f =>
def apply(x: Double): Double
def +(g: F) = { new F { def apply(x: Double) = f(x) + g(x) } }
}
object F {
implicit def funcToF(f: Double => Double) = new F { def apply(x: Double) = f(x) }
}
import F.funcToF
val f = (x: Double) => 2*x
val g = (x: Double) => 3*x
val h = f + g
println(f(1)) // 2
println(g(1)) // 3
println(h(1)) // 5
println((f + g)(1)) // 5
在线试用
答案 3 :(得分:1)