2013-04-10 23 views
10

In che modo l'espressione \x -> y viene pronunciata in genere dai programmatori Haskell?Come si dice ` x -> y`?

Chiedo perché di solito dico "lambda eks dot why," perché è scritto λx.y in un contesto generale e sono stato introdotto al calcolo lambda attraverso libri e note, senza sentire nessuno tradurre i termini in un discorso. Ma è una freccia, non un punto, in Haskell.

Capisco che le persone informatiche spesso elidano il punto nel discorso ("lambda eks [breve pausa] y"). I programmatori F # e C#, mi dice il web, spesso pronunciano l'espressione equivalente x => y come "eks va al perché." Non so come si affermino costruzioni simili in altri contesti.

Quindi tra gli Haskellers è "lambda eks arrow why," o cosa?

+1

Di solito lo pronuncio "lambda x y". Ma non è mai agevole – luqui

risposta

11

Di solito lo pronuncio come "lambda xey". Questo è molto breve e corrisponde a come lo si digiterà in TeX: \lambda x \to y. (Come nota carina, ho una modalità di input TeX nel mio editor, quindi potrei digitare quanto sopra per ottenere λ x → y.: P)

Detto questo, sono sicuro che tutti ti capirebbero se dicessi "lambda" x dot y "- la maggior parte delle persone conosce almeno quella notazione e è molto facile intuire cosa intendi dal contesto.

Non ho mai sentito nessuno dire "va a", comunque.

+1

Dico "A to B" come risultato di uscire con i miei amici teorici del set. – jozefg

+0

Quale editor è? – AndrewC

+1

@AndrewC: Emacs. È la modalità di input 'TeX': puoi semplicemente fare' C- \ 'e inserire' TeX' per sceglierlo. –

2

Rispondere per me stesso: nella mia mente lo dico spesso come "x va a y", o semplicemente "xey" - ma penso che si adatti un po 'per alcune funzioni di ordine superiore comuni. Se tu avessi map (\x -> (x * 2) - 1) foo, lo penserei come "mappa da x a x volte due meno uno su pippo". Tuttavia, per qualcosa come filter (\x -> x /= 6) foo l'ho letto come "filtro x, x non è uguale a 6, on foo" - in effetti, la freccia diventa una virgola in quel caso.

Problemi correlati