Domande taggate «language-design»

Domande riguardanti la progettazione e la struttura dei linguaggi di programmazione.



9
Perché le lingue non includono l'implicazione come operatore logico?
Potrebbe essere una domanda strana, ma perché non ci sono implicazioni come operatore logico in molti linguaggi (Java, C, C ++, Python Haskell - anche se come ultimo hanno operatori definiti dall'utente è banale aggiungerlo)? Trovo che le implicazioni logiche siano molto più chiare da scrivere (in particolare in affermazioni …


2
Perché 'vuoto' non è consentito come tipo generico in C #
Quali sono state le decisioni di progettazione che hanno sostenuto il fatto di voidnon essere costruibili e di non essere ammessi come tipo generico? Dopotutto è solo un vuoto speciale structe avrebbe evitato il PITA totale di avere distinti Funce Actiondelegati. (C ++ consente voidrendimenti espliciti e consente voidcome parametro …


5
Perché tutte le funzioni <algoritmo> accettano solo intervalli, non contenitori?
Ci sono molte funzioni utili in &lt;algorithm&gt;, ma tutte operano su "sequenze" - coppie di iteratori. Ad esempio, se ho un contenitore e mi piace eseguirlo std::accumulate, devo scrivere: std::vector&lt;int&gt; myContainer = ...; int sum = std::accumulate(myContainer.begin(), myContainer.end(), 0); Quando tutto ciò che intendo fare è: int sum = std::accumulate(myContainer, …


8
Perché progettare un linguaggio moderno senza un meccanismo di gestione delle eccezioni?
Molti linguaggi moderni offrono funzionalità avanzate di gestione delle eccezioni , ma il linguaggio di programmazione Swift di Apple non fornisce un meccanismo di gestione delle eccezioni . Forte di eccezioni come me, ho problemi a pensare a cosa significhi. Swift ha asserzioni e, naturalmente, valori di ritorno; ma ho …



4
Perché le strutture e le classi hanno concetti separati in C #?
Durante la programmazione in C #, mi sono imbattuto in una strana decisione di progettazione del linguaggio che non riesco proprio a capire. Quindi, C # (e CLR) ha due tipi di dati aggregati: struct(tipo-valore, archiviato nello stack, nessuna eredità) e class(tipo di riferimento, memorizzato nell'heap, ha ereditarietà). All'inizio questa …




Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.