In che modo Haskell traduce [
e ]
nelle definizioni dell'elenco? Stanno valutando i costruttori o qualcosa del genere? Sono newtypes? C'è un modo per definire una sintassi di correzione , a differenza di una di tipo infisso?In che modo lo zucchero sintattico della sequenza ([1..6]) viene tradotto nella sintassi dell'elenco effettivo (1: 2: 3 ... 6)?
6
A
risposta
14
Questa sintassi è definita nello Report e in particolare in section 3.10. [1..6]
significa "enumFromTo 1 6
". Non è possibile definire la sintassi in modo simile.
Problemi correlati
- 1. Xcode 6 non riconosce più i modelli \ 1, \ 2, \ #?
- 2. SCRIPT1002: Errore di sintassi, carattere Riga 1 6
- 3. inizia con lo zucchero sintattico OCaml?
- 4. int.TryParse zucchero sintattico
- 5. Scala Map: misterioso zucchero sintattico?
- 6. Knockout vincolante css rende => class =" 0 1 2 3 4 5 6 con KO 2.0
- 7. Esistono "regole" per lo zucchero sintattico di Ruby?
- 8. Rimozione zucchero sintattico: Lista di comprensione in Haskell
- 9. add (1) (2) (3) .total === 6 - Qualcun altro ha visto funzioni di ritorno automatico utilizzate in questo modo?
- 10. Viene chiamato 1 = 2 per ogni riga?
- 11. Le regole di riscrittura GHC sanno riconoscere lo zucchero sintattico?
- 12. rubino zucchero sintattico: si tratta di Nils
- 13. Un costruttore con solo 1 argomento in Perl 6
- 14. zucchero sintattico try-catch in java
- 15. Qual è la prova di (N-1) + (N-2) + (N-3) + ... + 1 = N * (N-1)/2
- 16. In che modo regexp JDK 6 viene confrontato con org.apache.regexp?
- 17. Somma delle serie: 1^1 + 2^2 + 3^3 + ... + n^n (mod m)
- 18. In che modo Stream-cons # :: viene tradotto in Scala?
- 19. Decoratori in pitone solo zucchero sintattico?
- 20. In Javascript, perché [1, 2] == [1, 2] o ({a: 1}) == ({a: 1}) falso?
- 21. "sincrono" è davvero solo zucchero sintattico?
- 22. Stenografia per il ciclo - zucchero sintattico in C++ (11)
- 23. Come scrivere Take (1) nella sintassi della query
- 24. Comprensioni elenco C# = puro zucchero sintattico?
- 25. Perché isinstance ([1, 2, 3], List [str]) è true?
- 26. Nuova sintassi di inizializzazione dell'oggetto C# 6?
- 27. Errore opzione non valida '6' per/langversion; deve essere ISO-1, ISO-2, 3, 4, 5 o Default
- 28. C# 6 sintassi Razor vista
- 29. SQL Server: cosa significa 1 ++ 2? sintassi T-SQL di
- 30. Generico zucchero sintattico o vero miglioramento
Per enfatizzare --- '[1, 2, 3]' e '[1..3]' hanno lo stesso * valore *, ma arrivano in modi molto diversi. '[1, 2, 3]' desugars (direttamente!) A '1: 2: 3: []' mentre '[1..3]' desugars a 'enumFromTo 1 3' che poi * valuta * a' 1: 2: 3: [] '. –
@tel: e per completezza, '[1,2,3]' e '[1..3]' non hanno necessariamente lo stesso valore. Dipende da che tipo è. Potrebbe essere una lista di un tipo che implementa 'Enum' in un modo strano. – newacct
Uno potrebbe anche essere un errore di tipo dato che il tipo di principio di '[1,2,3]' è 'Num a => [a]' mentre il tipo di principio di '[1..3]' è '(Num a , Enum a) => [a] '. –