作者heeyahan (阿草)
看板Perl
标题[问题] return 一个function
时间Tue Jan 3 21:21:38 2012
手上有个作业是希望用perl来达成scheme的function
例如在scheme上可以写成
(define t(lambda(f) (lambda (x) (f (f x)))))
(define s(lambda (x) (* x x)))
((t s)2)
在perl上就可以写成
sub t
{
my $f = shift;
return sub{my $x=shift; return $f->($f->($x));}
}
sub s
{
my $x = shift;
return $x*$x;
}
print t(\&s) -> (2);
都会得到相同结果
现在的情况是
在scheme上写成
(define cplus(lambda (x) (lambda (y) (+ x y))))
((cplus 2)3)
我的想法是这样
sub t
{
my $f = shift;
return sub{my $y = shift; return $f->($f -> ($y));}
}
sub k
{
my $f = shift;
return sub{my $x = shift; return $f->($f -> ($x)); }
}
sub s
{
my $x = shift;
my $y = shift;
return $x+$y;
}
可是print的地方就不知道该怎麽写去测试这个程式
google过 都没找到相关的资料
恳请各位大神帮忙了 ....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.254.51
1F:→ xatier:PL 作业? 01/04 00:23
2F:→ heeyahan:嗯嗯嗯 01/04 00:32