un sistema di tipi è un insieme di regole che assegnano una proprietà chiamata tipo ai vari costrutti - come variabili, espressioni, funzioni o moduli - di cui è composto un programma per computer.
Supponiamo che io voglia scrivere una biblioteca che si occupa di vettori e matrici. È possibile inserire le dimensioni nei tipi, in modo che le operazioni di dimensioni incompatibili generino un errore al momento della compilazione? Ad esempio, vorrei che la firma del prodotto dot fosse qualcosa di simile dotprod …
Di recente mi chiedevo perché la parola chiave è autostata scelta in C ++ 11 per contrassegnare una variabile il cui tipo deve essere dedotto dal compilatore, come in auto x = 1; Da var sembra più comune in altri linguaggi di programmazione (ad es. C #, Scala, JavaScript) e …
Allo stato attuale, questa domanda non è adatta al nostro formato di domande e risposte. Ci aspettiamo che le risposte siano supportate da fatti, riferimenti o competenze, ma questa domanda probabilmente solleciterà dibattiti, argomenti, sondaggi o discussioni estese. Se ritieni che questa domanda possa essere migliorata e possibilmente riaperta, visita …
Sono stato interessato ai tipi di unicità come alternativa alle monadi in linguaggi puramente funzionali; sfortunatamente, questa è una specie di area esoterica della ricerca CS e le risorse online sulla programmazione con tipi di unicità sono poche e lontane tra loro. È ovvio come i tipi di unicità possano …
Più imparo sui diversi paradigmi di programmazione, come la programmazione funzionale, più comincio a mettere in discussione la saggezza dei concetti di OOP come eredità e polimorfismo. Ho imparato a conoscere l'eredità e il polimorfismo a scuola, e all'epoca il polimorfismo sembrava un modo meraviglioso di scrivere un codice generico …
Durante un recente progetto a cui ho lavorato, ho dovuto usare molte funzioni che assomigliano a questo: static bool getGPS(double plane_latitude, double plane_longitude, double plane_altitude, double plane_roll, double plane_pitch, double plane_heading, double gimbal_roll, double gimbal_pitch, double gimbal_yaw, int target_x, int target_y, double zoom, int image_width_pixels, int image_height_pixels, double & Target_Latitude, …
Nota iniziale: Questa domanda è stata chiusa dopo varie modifiche perché mancava della terminologia corretta per affermare con precisione ciò che stavo cercando. Sam Tobin-Hochstadt ha quindi pubblicato un commento che mi ha fatto riconoscere esattamente quello che era: linguaggi di programmazione che supportano i tipi di intersezione per i …
Sono abbastanza sicuro che tutti abbiano familiarità con i metodi generici del modulo: T DoSomething<T>(T item) Questa funzione è anche chiamata parametricamente polimorfica (PP), in particolare la PP di grado 1 . Diciamo che questo metodo può essere rappresentato usando un oggetto funzione del modulo: <T> : T -> T …
Se si dispone di un enum con solo valori (nessun metodo come si potrebbe fare in Java) e questo enum fa parte della definizione aziendale del sistema, si dovrebbe scrivere un test unitario per esso? Stavo pensando che dovevano essere scritti, anche se potevano sembrare semplici e ridondanti, ritengo che …
Nei linguaggi orientati agli oggetti che supportano parametri di tipo generico (noti anche come modelli di classe e polimorfismo parametrico, sebbene ovviamente ogni nome abbia connotazioni diverse), è spesso possibile specificare un vincolo di tipo sul parametro di tipo, in modo tale che sia discendente da un altro tipo. Ad …
Ho appena visto questo discorso di Daniel Spiewak in cui parla dei vantaggi della tipizzazione strutturale rispetto alla tipizzazione nominale di Scala e Java . Un esempio di questa differenza sarebbe il seguente codice Java public interface Foo { public int length(); } public interface Bar { public int length(); …
Ho appena finito learnyouahaskell l'altro giorno e stavo cercando di dare un senso alla restrizione del monomorfismo, come descritto dal Wiki di Haskell . Penso di capire come l'MR può impedire valutazioni ripetute, ma non riesco a capire perché tali valutazioni ripetute non possano essere evitate con mezzi molto più …
In una risposta a una domanda precedente , è iniziato un piccolo dibattito sulla terminologia corretta per alcuni costrutti. Dato che non ho trovato una domanda (diversa da questa o quella , che non è proprio la cosa giusta) per rispondere in modo chiaro, sto realizzando questa nuova. I termini …
Alcuni linguaggi consentono classi e funzioni con parametri di tipo (come List<T>dove Tpuò essere un tipo arbitrario). Ad esempio, puoi avere una funzione come: List<S> Function<S, T>(List<T> list) Alcune lingue consentono tuttavia di estendere questo concetto di un livello superiore, consentendoti di avere una funzione con la firma: K<S> Function<K<_>, …
Haskell ha una nozione di "funzioni generiche" che ha qualche apparente somiglianza con lisp comune - non avendo né esperienza con Haskell né con lisp comune, potrei essere molto approssimativo qui. Ciò significa che è possibile definire una to_stringstruttura generica per definire una rappresentazione di stringa per tutti i tipi. …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.