람다
엄격한 인자 수를 적용하는 프로시저입니다
람다은(는) CoddyKit의 무료 Ruby Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Ruby Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Ruby Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
엄격한 인수 개수의 프로시저
람다는 일반 메서드처럼 동작하는 특수한 종류의 프로시저입니다. 인수 개수를 확인하고 return을 일반적인 방식으로 처리합니다. 예측 가능한 메서드와 같은 동작이 필요할 때 사용합니다.
square = lambda { |x| x * x }
puts square.call(6)찌르기 람다
-> 화살표 표기법은 별명으로 '찌르기 람다'라고도 하며, 람다를 작성하는 가장 일반적인 방법입니다. 매개변수는 괄호 안에 넣습니다.
add = ->(a, b) { a + b }
puts add.call(4, 5)람다 호출하기
람다는 프로시저와 같은 호출 방식을 지원합니다. .call, .(), [ ]을 사용할 수 있습니다.
triple = ->(x) { x * 3 }
puts triple.call(2)
puts triple.(2)
puts triple[2]엄격한 인수 확인
프로시저와 달리 람다는 인수 개수가 잘못되면 ArgumentError를 발생시킵니다. 따라서 오류를 일찍 발견할 수 있습니다.
greet = ->(name) { "Hi #{name}" }
puts greet.call("Sam")
begin
greet.call
rescue ArgumentError => e
puts "Error: #{e.message}"
end반환은 람다 안에만 적용됩니다
람다 안의 return은 람다만 종료하고 실행은 계속됩니다. 이는 메서드의 동작 방식과 같습니다.
def demo
l = -> { return 10 }
l.call
20 # this runs
end
puts demo람다인지 확인하기
프로시저와 람다는 모두 Proc의 인스턴스입니다. lambda?를 사용하면 둘을 구분할 수 있습니다.
l = ->(x) { x }
pr = proc { |x| x }
puts l.lambda?
puts pr.lambda?인수가 없는 람다
람다가 매개변수를 받지 않으면 괄호를 생략할 수 있습니다.
now = -> { Time.now.year }
puts "Year: #{now.call}"여러 줄 람다
람다는 여러 줄에 걸쳐 작성할 수 있습니다. 마지막 표현식이 반환값이 됩니다.
classify = ->(n) {
return "zero" if n.zero?
n.positive? ? "positive" : "negative"
}
puts classify.call(0)
puts classify.call(-3)메서드에 람다 전달하기
프로시저와 마찬가지로 람다는 &를 사용해 블록으로 변환할 수 있으므로 map, select와 그 밖의 메서드에 사용할 수 있습니다.
doubler = ->(n) { n * 2 }
p [1, 2, 3].map(&doubler)반환값으로 사용하는 람다
메서드가 람다를 만들어 반환하도록 하면 필요할 때마다 특수한 함수를 만들 수 있습니다.
def multiplier(by)
->(n) { n * by }
end
times10 = multiplier(10)
puts times10.call(5)한데 모아 보기
람다는 엄격하고 메서드와 비슷한 프로시저입니다.
lambda { }또는->(args) { }로 작성합니다.- 인수 개수를 강제하고
return을 람다 안에만 적용합니다. - 정확성이 중요하거나 반환할 함수를 만들 때 사용합니다.
is_even = ->(n) { n.even? }
p [1, 2, 3, 4, 5, 6].select(&is_even)빠른 확인
람다를 얼마나 이해했는지 확인해 보세요.
복습
람다를 배웠습니다.
- 람다는 엄격한 프로시저이며
->로 작성합니다. - 인수 개수를 강제합니다.
return은 람다만 종료합니다.lambda?로 일반 프로시저와 구분합니다.
area = ->(w, h) { w * h }
puts area.call(3, 4)자주 묻는 질문
“람다” 강의는 무료인가요?
네 — “람다” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Ruby Academy 강의 전체를 잠금 해제할 수 있습니다. Ruby Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“람다”에서 뭘 배우나요?
엄격한 인자 수를 적용하는 프로시저입니다 브라우저에서 직접 실행하는 실습 코드로 Ruby Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Ruby Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Ruby Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“람다” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Ruby Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Ruby Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.