1.9系では Proc#=== が call のaliasなので(1.8系でも自分でalias1行書けば可能)

lesser_than = lambda {|a| lambda {|b| b < a } }

{ 'Taro' => 90, 'Jiro' => 50, 'Saburo' => 30 }.each do |name, score|
rank =
case score
when lesser_than[40]; "D"
when lesser_than[60]; "C"
when lesser_than[80]; "B"
else "A"
end
puts "%s:%d:%s" % [ name, score, rank ]
end

Taro:90:A
Jiro:50:C
Saburo:30:D

なんていう方法があるけど…いいと言えるかどうかは迷うところ。