Điều này được gọi là đệ quy, và nó phụ thuộc vào ngôn ngữ bạn đang sử dụng. Một số ngôn ngữ hỗ trợ đệ quy, một số thì không. Hãy cẩn thận khi gọi một hàm đệ quy, bạn phải có cách để trả về ngăn xếp và bạn cũng phải đảm bảo rằng bạn không làm tràn ngăn xếp.
Một số ngôn ngữ hỗ trợ khái niệm đệ quy đuôi. Đây là một tối ưu hóa trình biên dịch kiểm tra mã cho các câu lệnh chạy sau một câu lệnh trả về tiềm năng. Giả sử trả về có điều kiện về đệ quy không có câu lệnh nào có thể thực thi sau nó. Trong trường hợp đó, trình biên dịch thực hiện đệ quy bằng cách loại bỏ ngăn xếp cũ và tạo một ngăn xếp mới trên mỗi lần gọi đệ quy. Điều này ngăn chặn tràn ngăn xếp.