看板 Perl 關於我們 聯絡資訊
手上有個作業是希望用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
xatier:PL 作業? 01/04 00:23
heeyahan:嗯嗯嗯 01/04 00:32