Những tham số phải được chú thích sau bằng một kiểu dữ liệu (ngược lại với một số ngôn ngữ lập trình khác), rồi một giá trị trả về.
Biểu thức cuối cùng trong hàm (hay một khối) sẽ trở thành giá trị tả về. Đơn giản bằng cách bỏ qua dấu ; ở cuối biểu thức. Từ khóa return có thể sử dụng để trả về sớm, nhưng “giá trị trần (bare value)” là triết lí ngôn ngữ (idiomatic) khi đặt ở cuối hàm (tái cấu trúc gcd dể sử dụng return).
Một số hàm sẽ không có giá trị trở về, sẽ trả về ‘kiểu dữ liệu’, (). Trình biên dịch sẽ kết luận rằng kiểu dữ liệu sẽ là -> () nếu kiểu dữ liệu trả về được bỏ qua.
Overloading (nạp chồng) không được hỗ trợ – mỗi hàm chỉ có duy nhất một triển khai.
Luôn luôn lấy một số những tham số nhất định. Đối số mặc định không đưọc hỗ trợ. Macros có thể sử dụng cho hỗ trợ hàm đa tham số.
Luôn luôn chỉ lấy một nhóm kiểu tham số dữ liệu. Những kiểu dữ liệu này có thể là generic (tổng quát), và sẽ được đề cập tới ở phần sau.