--- Arie Kusuma Atmaja <[EMAIL PROTECTED]> wrote:
> edpratomo wrote:
> > sebetulnya yg dimaksud dng closure oleh teman2 ruby ini apa ya..
> > apakah sama dng anonymous function?
> > karena saya pernah lihat di salah satu website (ruby), closure ini
> > disamakan dng anonymous function yg dari proc/lambda.
> >
> > kalo berdasarkan ilmu onta, closure itu != anonymous func.
> > bahkan function yg bukan anonymous pun bisa jadi closure.
>
> cara closure.
>
> irb(main):015:0> def bakalpanggilprocnih(pr)
> irb(main):016:1> a = "a yang tidak relefan berada dalam skop metode"
> irb(main):017:1> puts a
> irb(main):018:1> pr.call
> irb(main):019:1> end
> => nil
> irb(main):020:0> a = "'a' yg dipakai di dalam blok Proc"
> => "'a' yg dipakai di dalam blok Proc"
> irb(main):021:0> pr = Proc.new { puts a }
> => #<Proc:0x0003ac3c@(irb):21>
> irb(main):022:0> pr.call
> 'a' yg dipakai di dalam blok Proc
> => nil
> irb(main):023:0> bakalpanggilprocnih(pr)
> a yang tidak relefan berada dalam skop metode
> 'a' yg dipakai di dalam blok Proc
> => nil
kalo ini berarti sama dng ilmu onta.
{
my $a = q{'a' yg dipakai di dalam blok Proc};
sub not_anonymous_but_closure {
return $a;
}
}
> Nah kalau tadi objek Proc, sekarang yang tak punya nama, alias anonim
> / anonymous, pakai lambda.
>
> irb(main):031:0> la = lambda { puts "Perkenalkan, saya lambda!" }
> => #<Proc:0x0007f954@(irb):31>
> irb(main):032:0> la.call
> Perkenalkan, saya lambda!
> => nil
nah kalo ini anonymous, tapi bukan closure kan?
rgds,
Edwin.
________________________________________________________
Kunjungi halaman depan Yahoo! Indonesia yang baru!
http://id.yahoo.com/