Lambdas
Procs à arité stricte
Lambdas est une leçon Ruby Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Ruby Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Ruby Academy comprend 4 leçons au total.
Proc à arité stricte
Une lambda est un type particulier de Proc qui se comporte davantage comme une méthode ordinaire : elle vérifie le nombre de ses arguments et traite return normalement. Utilisez-la lorsque vous voulez un comportement prévisible, similaire à celui d’une méthode.
square = lambda { |x| x * x }
puts square.call(6)La lambda en flèche
La syntaxe fléchée ->, surnommée « lambda en flèche », est la façon la plus courante d’écrire des lambdas. Les paramètres sont placés entre parenthèses.
add = ->(a, b) { a + b }
puts add.call(4, 5)Appeler des lambdas
Les lambdas prennent en charge les mêmes styles d’appel que les Proc : .call, .() et [ ].
triple = ->(x) { x * 3 }
puts triple.call(2)
puts triple.(2)
puts triple[2]Vérification stricte des arguments
Contrairement à un Proc, une lambda lève ArgumentError si vous lui transmettez un nombre incorrect d’arguments. Cela permet de détecter les erreurs rapidement.
greet = ->(name) { "Hi #{name}" }
puts greet.call("Sam")
begin
greet.call
rescue ArgumentError => e
puts "Error: #{e.message}"
endreturn reste local
Un return dans une lambda ne quitte que la lambda, puis l’exécution se poursuit. Cela correspond au comportement des méthodes.
def demo
l = -> { return 10 }
l.call
20 # this runs
end
puts demoVérifier s’il s’agit d’une lambda
Les Proc et les lambdas sont tous deux des instances de Proc. Utilisez lambda? pour les différencier.
l = ->(x) { x }
pr = proc { |x| x }
puts l.lambda?
puts pr.lambda?Lambdas sans arguments
Omettez les parenthèses lorsqu’une lambda n’accepte aucun paramètre.
now = -> { Time.now.year }
puts "Year: #{now.call}"Lambdas sur plusieurs lignes
Les lambdas peuvent s’étendre sur plusieurs lignes. La dernière expression constitue la valeur renvoyée.
classify = ->(n) {
return "zero" if n.zero?
n.positive? ? "positive" : "negative"
}
puts classify.call(0)
puts classify.call(-3)Transmettre des lambdas aux méthodes
Comme les Proc, les lambdas se convertissent en blocs avec & et peuvent donc être utilisées avec map, select et d’autres méthodes similaires.
doubler = ->(n) { n * 2 }
p [1, 2, 3].map(&doubler)Les lambdas comme valeurs de retour
Une méthode peut créer et renvoyer une lambda, ce qui vous permet de créer des fonctions spécialisées à la volée.
def multiplier(by)
->(n) { n * by }
end
times10 = multiplier(10)
puts times10.call(5)Mise en pratique
Les lambdas sont des Proc stricts, semblables à des méthodes :
- Écrivez-les avec
lambda { }ou->(args) { }. - Elles imposent l’arité et maintiennent
returndans leur propre portée. - Utilisez-les lorsque la fiabilité est importante ou lorsque vous créez des fonctions à renvoyer.
is_even = ->(n) { n.even? }
p [1, 2, 3, 4, 5, 6].select(&is_even)Vérification rapide
Vérifiez votre compréhension des lambdas.
Récapitulatif
Vous avez appris à utiliser les lambdas :
- Une lambda est un Proc strict ; écrivez-la avec
->. - Elle impose le nombre d’arguments.
returnne quitte que la lambda.lambda?la différencie d’un Proc ordinaire.
area = ->(w, h) { w * h }
puts area.call(3, 4)Questions Fréquemment Posées
La leçon « Lambdas » est-elle gratuite ?
Oui — le texte complet de « Lambdas » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Ruby Academy, passe à CoddyKit PRO. Le cours Ruby Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Lambdas » ?
Procs à arité stricte Tu pratiques Ruby Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Ruby Academy ?
Aucune expérience préalable n'est requise. Ruby Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Lambdas » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Ruby Academy ?
Oui. Chaque leçon Ruby Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.