In un 2013 presentation about the future of Standard ML, Bob Harper dice, nella diapositiva 9, che "la condivisione della struttura è interrotta". Qualcuno può dare maggiori dettagli su questo? Non ho abbastanza esperienza con la condivisione per capire cosa volesse dire.Come viene suddivisa la condivisione della struttura in Standard ML?
risposta
È danneggiato perché, come specificato, non può essere applicato a strutture con componenti di tipo trasparente. Ad esempio:
signature S = sig type t; type u = int end
signature T =
sig
structure A : S
structure B : S
sharing A = B
end
sarebbe già illegale, anche se naturalmente ti aspetteresti che questo andasse bene.
La cronologia qui è che la condivisione delle strutture è stata introdotta in SML'90, in cui non esistevano componenti di tipo trasparente. Con SML'97, quelli sono stati aggiunti. A quel punto, l'intera azienda con vincoli di condivisione è diventata un po 'obsoleta perché sono stati (in una certa misura) sostituiti da vincoli "dove tipo". Quindi, la semantica della condivisione fu enormemente semplificata e la condivisione della struttura degradata da uno zucchero primitivo a quello sintattico. Ma questo zucchero è stato definito in modo tale che ha funzionato solo con i programmi SML'90 - il che ha senso se lo si vede solo come un trucco di retrocompatibilità, ma non se si considera la struttura che condivide una caratteristica centrale di SML'97.
Le persone nella comunità SML non sono d'accordo sulla rilevanza dei vincoli di condivisione. Alcuni li considerano obsoleti, altri ancora importanti. Sfortunatamente, SML'97 non è riuscito ad aggiungere un vincolo "where structure", che avrebbe potuto sostituire correttamente il sharing della struttura.
La risposta di Andreas Rossberg ha già chiarito le cose, ma ho scritto al professor Harper prima della risposta di Andreas. Sto postando la sua risposta qui per i curiosi:
È un problema puramente tecnico con la definizione. In SML 90, era una nozione di condivisione delle strutture sopra e oltre la condivisione di tipo costituente. In SML 97 la condivisione della struttura è stata ridefinita per indicare la condivisione dei tipi costitutivi di , ma la formulazione è errata (ci sono diverse sostituzioni candidate, quindi i compilatori differiscono nel loro comportamento) . È comunque un angolo scuro, quindi nello schema delle cose è molto minore, ma l'errore e le incompatibilità associate a lo rendono inutilizzabile.
- 1. GUI per Standard ML?
- 2. Sopprimere l'output "val it" in Standard ML
- 3. Haskell o Standard ML per principianti?
- 4. Standard ML: Confusione sulle celle di riferimento
- 5. NSUserDefaults: dumping della struttura dello standard NSUserDefaultsUserDefaults
- 6. Rilevamento delle dimensioni della finestra suddivisa
- 7. L'estensione della condivisione iOS viene visualizzata solo in Safari
- 8. Mostra la struttura della tabella in SQL
- 9. Simulazione della corrispondenza di pattern in stile ML in C++
- 10. La struttura dati della corda
- 11. Come viene compilata una classe vuota e una struttura vuota?
- 12. Condivisione della memoria RDMA
- 13. La struttura vuota è definita dallo standard C++?
- 14. Bootstrap3: cos'è la struttura e il layout standard?
- 15. Come visualizzare la struttura della classe TypeScript in Visual Studio
- 16. Come scrivere la struttura corretta della durata in Rust?
- 17. Come ottenere la struttura della tabella in CodeIgniter
- 18. VBA stringa suddivisa per spazi
- 19. Perché questa matrice di assegnazione della struttura non viene compilata?
- 20. Selezione data jquery suddivisa in più campi
- 21. espressioni regolari Javascript - stringa suddivisa
- 22. Spark ML - Save OneVsRestModel
- 23. Condivisione strutturale in Clojure
- 24. Inizializza la struttura della cartella di cetrioli?
- 25. Swift calcola la dimensione errata della struttura
- 26. C inizializzare la matrice all'interno della struttura
- 27. Sintassi per la documentazione della struttura JSON
- 28. La libreria standard Python è veramente standard?
- 29. Come inizializzare la struttura?
- 30. Come si impone la durata della struttura padre-figlio?
Grazie, Andreas. Speravo che rispondessi a questa domanda :) Ha senso ora. Ho anche scritto a Bob Harper per chiedere questo, quindi aggiungerò la sua risposta in un'altra risposta. –