Đây là ba cách Ruby xử lý đoạn code dưới dạng dữ liệu. Một block được truyền vào một method (không phải object); một Proc và một lambda là object bao bọc một block (có thể gọi, có thể lưu trữ). Proc và lambda khác nhau một cách tinh tế trong việc kiểm tra đối số và hành vi return.
