作者james732 (好人超)
站内Programming
标题Re: [问题] 增加自变量
时间Wed Jul 8 16:41:10 2009
※ 引述《skgic (Ru|Ki)》之铭言:
: ANSI-LISP书中提到一个c做不到例子:
: "写一个函数接受数n, 返回一个函数: 它把n增加到它的自变量上去 "
: *******程式码*******
: (defun addn (n)
: #'(lambda (x)
: (+ x n)))
: ********************
: C作不到的原因是没办法把funtion当作参数传递 应该没理解错吧?
: 但还是看不懂n加到自变量上面的意思是指什麽
: 请问有没有比较简单的说明这个题目
: 谢谢<(_ _)>
addn 的用途,用类似C的语法来写的话:
FUNCTION addn(n)
{
return new FUNCTION(x)(x + n);
}
它接受一个参数n,回传的是
一个函式,
这个函式有一个参数x,做的事情是 x+n
所以可以类似这麽写:
FUNCTION f = addn(5); /* f(x) = (x + 5); */
a = f(3); /* a 得到 8 */
C做不到的是:它没办法在执行期动态生一个函式,并且
回传给你用
但C的
参数是可以用函式指标的
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.104.62.12
1F:推 skgic:原来如此 114.46.229.209 07/08 17:03
2F:→ skgic:执行期产生函式是语言静态/动态的问题 114.46.229.209 07/08 17:04
3F:→ skgic:谢谢您的说明^^ 114.46.229.209 07/08 17:07