Ein Typsystem ist eine Sammlung von Regeln, die den verschiedenen Konstrukten - wie Variablen, Ausdrücken, Funktionen oder Modulen -, aus denen ein Computerprogramm besteht, eine Eigenschaft zuweisen, die als Typ bezeichnet wird.
Angenommen, ich möchte eine Bibliothek schreiben, die sich mit Vektoren und Matrizen befasst. Ist es möglich, die Dimensionen in die Typen zu backen, sodass Operationen inkompatibler Dimensionen beim Kompilieren einen Fehler erzeugen? Zum Beispiel möchte ich, dass die Signatur des Punktprodukts so ähnlich ist dotprod :: Num a, VecDim d …
Ich habe mich kürzlich gefragt, warum das Schlüsselwort autoin C ++ 11 gewählt wurde, um eine Variable zu markieren, deren Typ vom Compiler abgeleitet werden muss, wie in auto x = 1; Schon seit var scheint häufiger in anderen Programmiersprachen (z. B. C #, Scala, JavaScript) und Soweit ich die …
Aus heutiger Sicht passt diese Frage nicht zu unserem Q & A-Format. Wir erwarten, dass die Antworten durch Fakten, Referenzen oder Fachwissen gestützt werden, aber diese Frage wird wahrscheinlich Debatten, Argumente, Abstimmungen oder erweiterte Diskussionen hervorrufen. Wenn Sie der Meinung sind, dass diese Frage verbessert und möglicherweise erneut geöffnet werden …
Ich interessiere mich seit einiger Zeit für Einzigartigkeitstypen als Alternative zu Monaden in reinen funktionalen Sprachen. Leider ist dies eine Art esoterischer Bereich der CS-Forschung, und Online-Ressourcen zum Programmieren mit Eindeutigkeitstypen sind rar gesät. Es ist offensichtlich, wie Eindeutigkeitstypen verwendet werden können, um statusbezogene Datenstrukturen wie Referenzen ("Boxen") und Arrays …
Je mehr ich über verschiedene Programmierparadigmen wie die funktionale Programmierung lerne, desto mehr beginne ich, die Weisheit von OOP-Konzepten wie Vererbung und Polymorphismus in Frage zu stellen. Ich habe zum ersten Mal in der Schule etwas über Vererbung und Polymorphismus gelernt, und damals schien Polymorphismus eine wunderbare Möglichkeit zu sein, …
Während eines Projekts, an dem ich kürzlich gearbeitet habe, musste ich viele Funktionen verwenden, die so aussehen: 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, …
Anfangshinweis: Diese Frage wurde nach mehreren Änderungen geschlossen, da mir die richtige Terminologie fehlte, um genau zu sagen, wonach ich suchte. Sam Tobin-Hochstadt hat dann einen Kommentar gepostet, der mich genau erkennen ließ, was das war: Programmiersprachen, die Schnittpunkttypen für Funktionsrückgabewerte unterstützen. Nachdem die Frage erneut geöffnet wurde, habe ich …
Ich bin mir ziemlich sicher, dass jeder mit allgemeinen Methoden der Form vertraut ist: T DoSomething<T>(T item) Diese Funktion wird auch als parametrisch polymorph (PP) bezeichnet, insbesondere als PP mit Rang 1 . Nehmen wir an, diese Methode kann mit einem Funktionsobjekt der Form dargestellt werden: <T> : T -> …
Wenn Sie eine Aufzählung nur mit Werten haben (keine Methoden wie in Java) und diese Aufzählung Teil der Geschäftsdefinition des Systems ist, sollte man Unit-Tests dafür schreiben? Ich dachte, dass sie geschrieben werden sollten, auch wenn sie einfach und überflüssig erscheinen könnten. Ich denke, dass was die Geschäftsspezifikation betrifft, explizit …
In objektorientierten Sprachen, die generische Typparameter unterstützen (auch als Klassenvorlagen und parametrischer Polymorphismus bezeichnet), ist es häufig möglich, eine Typbeschränkung für den Typparameter anzugeben, sodass er abgeleitet wird von einem anderen Typ. Dies ist beispielsweise die Syntax in C #: //for classes: class ExampleClass<T> where T : I1 { } …
Ich habe gerade diesen Vortrag von Daniel Spiewak gesehen, in dem er über die Vorteile der strukturellen Typisierung im Vergleich zur nominalen Typisierung von Scala und Java spricht . Ein Beispiel für diesen Unterschied wäre der folgende Java-Code public interface Foo { public int length(); } public interface Bar { …
Ich habe neulich gerade das Lernen von Youahaskell beendet und habe versucht, die Monomorphismus-Einschränkung zu verstehen, wie sie im Haskell-Wiki beschrieben wird . Ich denke, ich verstehe, wie der MR wiederholte Auswertungen verhindern kann, aber ich verstehe nicht, warum diese wiederholten Auswertungen mit weitaus einfacheren Mitteln nicht vermieden werden können. …
Bei der Beantwortung einer früheren Frage begann eine kleine Debatte über die korrekte Terminologie für bestimmte Konstrukte. Da ich keine andere Frage (außer diese oder jene , die nicht ganz die richtige ist) gefunden habe, um dies klar anzusprechen, mache ich diese neue. Die fraglichen Begriffe und ihre Beziehungen sind: …
Einige Sprachen erlauben Klassen und Funktionen mit Typparametern (z. B. List<T>wo Tein beliebiger Typ sein kann). Zum Beispiel können Sie eine Funktion haben wie: List<S> Function<S, T>(List<T> list) In einigen Sprachen kann dieses Konzept jedoch um eine Stufe höher erweitert werden, sodass Sie eine Funktion mit der Signatur haben: K<S> …
Haskell hat eine Vorstellung von "generischen Funktionen", die eine gewisse Ähnlichkeit mit gewöhnlichem Lispeln aufweist - da ich weder Erfahrung mit Haskell noch mit gewöhnlichem Lispeln habe, könnte ich hier sehr ungefähr sein. Dies bedeutet, dass man eine generische to_stringEinrichtung definieren kann, um eine Zeichenfolgendarstellung für alle Typen zu definieren. …
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.