Sto cercando di ridurre la mia confusione sulla sintassi di Haskell e vorrei scoprire quali sono gli spazi dei nomi separati in Haskell.Quali spazi dei nomi simbolo ci sono in Haskell?
Spazi dei nomi che indicano spazi dei nomi sintattici corrispondenti alle varie tabelle di simboli gestite dal compilatore, non gli ambiti dei nomi definiti nel codice.
Ad esempio:
- nomi di valore (come nomi di funzione)
- costruttori dati
- costruttori di tipo
- parametri di tipo (a definizioni di tipo)
- istanze?
- ...?
mi interessa perché io sto avendo difficoltà a leggere il codice Haskell (sicuramente più che con qualsiasi altra lingua) perché ho spesso un momento difficile capire cosa esattamente sto guardando (in particolare con i dati/type costruttori/dichiarazioni di tipo).
Haskell sembra riutilizzare una manciata di costrutti sintattici (esp <name> <name> ...
.) In molti posti e si basa su contesto - solo scopre che il compilatore è molto meglio a questo di me ...
Ci sono anche i nomi infissi a livello di valore e tipo. Per le variabili (a entrambi i livelli), sono composte da simboli e iniziano con qualsiasi carattere tranne un ':'. Per i costruttori (a entrambi i livelli) sono composti da simboli e iniziano con ':'. I costruttori di tipo Infix sono come ricordo solo un'estensione GHC. – sclv
Questa è la risposta che stavo cercando, grazie! – Martin
Ciò che ha aggiunto alla mia confusione sono state le giunzioni di primo livello di Template Haskell, che assomigliano alle definizioni di funzione con '=' mancanti e inoltre non hanno una regola di maiuscole (e ancora riutilizziamo il '' 'modello ...) . Per riferimento http://www.haskell.org/ghc/docs/latest/html/users_guide/template-haskell.html –
Martin