0Pricing
Ruby Academy · Pelajaran

Lambda

Proc dengan jumlah argumen ketat.

Lambda adalah pelajaran Ruby Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Ruby Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Ruby Academy mencakup 4 pelajaran total.

Proc dengan Jumlah Argumen Ketat

Lambda adalah jenis Proc khusus yang lebih menyerupai metode biasa: lambda memeriksa jumlah argumennya dan memperlakukan return secara normal. Gunakan lambda ketika Anda menginginkan perilaku yang dapat diprediksi dan menyerupai metode.

square = lambda { |x| x * x }
puts square.call(6)

Lambda Panah

Sintaks panah ->, yang dijuluki 'lambda bertanda panah', adalah cara paling umum untuk menulis lambda. Parameter ditulis di dalam tanda kurung.

add = ->(a, b) { a + b }
puts add.call(4, 5)

Memanggil Lambda

Lambda mendukung gaya pemanggilan yang sama seperti Proc: .call, .(), dan [ ].

triple = ->(x) { x * 3 }
puts triple.call(2)
puts triple.(2)
puts triple[2]

Pemeriksaan Argumen Ketat

Berbeda dari Proc, lambda menimbulkan ArgumentError jika Anda memberikan jumlah argumen yang salah. Hal ini membantu menemukan kesalahan lebih awal.

greet = ->(name) { "Hi #{name}" }
puts greet.call("Sam")
begin
  greet.call
rescue ArgumentError => e
  puts "Error: #{e.message}"
end

Nilai Kembalian Tetap Lokal

return di dalam lambda hanya keluar dari lambda tersebut, lalu eksekusi berlanjut. Ini sesuai dengan perilaku metode.

def demo
  l = -> { return 10 }
  l.call
  20  # this runs
end
puts demo

Memeriksa Lambda

Baik Proc maupun lambda merupakan instans Proc. Gunakan lambda? untuk membedakan keduanya.

l = ->(x) { x }
pr = proc { |x| x }
puts l.lambda?
puts pr.lambda?

Lambda tanpa Argumen

Abaikan tanda kurung jika lambda tidak menerima parameter.

now = -> { Time.now.year }
puts "Year: #{now.call}"

Lambda Multi-Baris

Lambda dapat ditulis dalam beberapa baris. Ekspresi terakhir menjadi nilai kembalian.

classify = ->(n) {
  return "zero" if n.zero?
  n.positive? ? "positive" : "negative"
}
puts classify.call(0)
puts classify.call(-3)

Meneruskan Lambda ke Metode

Seperti Proc, lambda dapat diubah menjadi blok dengan &, sehingga dapat digunakan dalam map, select, dan metode serupa.

doubler = ->(n) { n * 2 }
p [1, 2, 3].map(&doubler)

Lambda sebagai Nilai Kembalian

Sebuah metode dapat membuat dan mengembalikan lambda, sehingga Anda dapat membuat fungsi khusus secara langsung saat diperlukan.

def multiplier(by)
  ->(n) { n * by }
end
times10 = multiplier(10)
puts times10.call(5)

Menyatukannya

Lambda adalah Proc yang ketat dan menyerupai metode:

  • Tulis dengan lambda { } atau ->(args) { }.
  • Lambda memberlakukan jumlah argumen dan menjaga return tetap lokal.
  • Gunakan lambda saat ketepatan penting atau ketika Anda membuat fungsi untuk dikembalikan.
is_even = ->(n) { n.even? }
p [1, 2, 3, 4, 5, 6].select(&is_even)

Uji Cepat

Uji pemahaman Anda tentang lambda.

Ringkasan

Anda telah mempelajari lambda:

  • Lambda adalah Proc yang ketat; tulis dengan ->.
  • Lambda memberlakukan jumlah argumen.
  • return hanya keluar dari lambda.
  • lambda? membedakannya dari Proc biasa.
area = ->(w, h) { w * h }
puts area.call(3, 4)

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Lambda” gratis?

Ya — teks lengkap “Lambda” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Ruby Academy, upgrade ke CoddyKit PRO. Kursus Ruby Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Lambda”?

Proc dengan jumlah argumen ketat. Kamu berlatih Ruby Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Ruby Academy?

Tidak diperlukan pengalaman sebelumnya. Ruby Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Lambda” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Ruby Academy ini?

Ya. Setiap pelajaran Ruby Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Rangkuman Block
  2. Proc
  3. Lambda
  4. Closure dan Scope
← Kembali ke Ruby Academy