--- 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/

Kirim email ke