Quando scriviamo (in una lingua o in un altro):Le lingue esistenti consentono gli argomenti delle funzioni in aree arbitrarie in un nome funzione?
lengthOf(n)
Pensiamo ad esso come abbreviazione di un inglese 'riempire gli spazi vuoti' di costruzione, come:
length of __
Ma quando scriviamo cose come queste:
isAnInteger(n)
appendTo(n,m)
Pensiamo a frasi come:
__ is an integer
append ___ to ___
Quindi, sembrerebbe più naturale per consentire espressioni funzione di invocazione come:
(n)isAnInteger
append(n)to(m)
Dove sono i 'nomi delle funzioni' qualcosa di simile:
_isAnInteger
append_to_
Qualcuno può citare la programmazione esistente lingue che permettono questo? So che i linguaggi orientati agli oggetti consentono all'oggetto di essere un argomento in primo piano, ma mi domando su sintassi più flessibili.
Objective-C chiamate di metodi sono spesso nella forma '[anObject performOperation: operation withTask: task andInteger: intero] ', ecc. Non è _flexible_ di per sé, ma (IMO) è più naturale. –
È possibile definire le funzioni di base in Standard ML. Ad esempio, è possibile definire una funzione 'to' in modo che il chiamante scrive' n in m' invece di 'in (n, m)'. Questo non è esattamente quello che stai cercando, ma condivide alcune somiglianze (specialmente dal momento che puoi scrivere sia 'append' che' to' per chiamare 'append (da n a m)' più tardi). –
Smalltalk, Objective-C, Agda, BitC e altri. Vedi [Esiste un linguaggio là fuori in cui i parametri sono inseriti nel nome del metodo?] (Http://programmers.stackexchange.com/questions/102906/) e [Gli spazi bianchi negli identificatori sono mai stati idiomatici?] (Http://programmers.stackexchange.com/questions/145751/) –