Câu trả lời được đăng ở trên là chính xác. Hàm SML chỉ mất chỉ một đối số. Kết quả là, chức năng SML có thể chỉ có một trong hai loại đầu vào:
1) t = (t1 * t2 * ... * tN)
, đối với một số N
2) t = a
, đối với một số a
.
Vì vậy, về mặt kỹ thuật, SML chỉ có các loại sản phẩm hoặc các loại đơn nhất làm đối số cho hàm. Người ta thường có thể nghĩ về điều này như là một Unary-Type hoặc một phép chiếu của một số loại sản phẩm.
Để có tách lạng bộ bên chức năng ẩn danh, hãy thoải mái làm tổ họ bên nhau như: fn x1 => fn x2 => ... fn xN => ...
Tôi nghĩ nó cũng quan trọng để biết rằng: fun a = fn x1 => fn x2 => ... fn xN => ...
là sự mở rộng đầy đủ của đường syntact : fun a x1 x2 .. xN
Nguồn
2017-08-17 01:11:27
hoạt động khi tôi đổi thành (fn (x, y) => x + y) (2,3); nhưng tại sao (fn x y => x * y) 2 3; tạo ra một lỗi – jjennifer