Khi chúng tôi viết (trong một số ngôn ngữ này hay cách khác):Làm bất kỳ ngôn ngữ hiện có nào có cho phép các đối số chức năng ở các vị trí tùy ý trong tên chức năng không?
lengthOf(n)
Chúng tôi nghĩ về nó như viết tắt của 'điền vào chỗ trống' xây dựng, giống như một tiếng anh:
length of __
Nhưng khi chúng tôi viết điều như thế này:
isAnInteger(n)
appendTo(n,m)
Chúng tôi nghĩ về câu như:
__ is an integer
append ___ to ___
Vì vậy, nó sẽ có vẻ tự nhiên hơn để cho phép biểu thức chức năng gọi như:
(n)isAnInteger
append(n)to(m)
Trường hợp 'tên hàm' là cái gì đó như:
_isAnInteger
append_to_
bất cứ ai có thể đặt tên cho chương trình hiện có ngôn ngữ cho phép điều này? Tôi biết ngôn ngữ hướng đối tượng cho phép đối tượng là một đối số ở phía trước, nhưng tôi tự hỏi về các cú pháp linh hoạt hơn.
lời gọi phương pháp Objective-C thường có dạng '[anObject performOperation: operation withTask: task vàInteger: integer] ', vv Nó không phải là _flexible_ mỗi se, nhưng (IMO) đọc tự nhiên hơn. –
Bạn có thể xác định các chức năng cơ bản trong tiêu chuẩn ML. Ví dụ, bạn có thể định nghĩa một hàm 'to' để người gọi viết' n đến m' thay cho 'to (n, m)'. Đó không phải chính xác những gì bạn đang tìm kiếm, nhưng nó chia sẻ một số điểm tương đồng (đặc biệt là vì bạn có thể viết cả 'append' và' to' để gọi 'append (n đến m)' sau này). –
Smalltalk, Objective-C, Agda, BitC và các công cụ khác. Xem [Có một ngôn ngữ ngoài đó, trong đó các thông số được đặt bên trong tên phương thức?] (Http://programmers.stackexchange.com/questions/102906/) và [Có khoảng trống trong các mã định danh đã từng là thành ngữ không?] (Http://programmers.stackexchange.com/questions/145751/) –