Haskell ist eine funktionale Programmiersprache mit starker statischer Typisierung, verzögerter Auswertung, umfassender Unterstützung für Parallelität und Parallelität sowie einzigartigen Abstraktionsfunktionen.
In F # ist die Verwendung des Pipe-Forward-Operators |>ziemlich häufig. In Haskell habe ich jedoch nur die Funktionszusammensetzung gesehen (.), die verwendet wurde. Ich verstehe, dass sie verwandt sind , aber gibt es einen sprachlichen Grund, warum Pipe-Forward in Haskell nicht verwendet wird, oder ist es etwas anderes?
Gibt es in reinen Funktionssprachen wie Haskell einen Algorithmus, um die Umkehrung einer Funktion (Bearbeiten) zu erhalten, wenn sie bijektiv ist? Und gibt es eine bestimmte Möglichkeit, Ihre Funktion so zu programmieren, wie sie ist?
Wie würde man diesen Teil des C-Codes in eine .chs-Datei codieren, damit c2hs ihn in etwas relativ Nettes verwandeln kann? typedef enum { MONOME_BUTTON_UP = 0x00, MONOME_BUTTON_DOWN = 0x01, MONOME_ENCODER_DELTA = 0x02, MONOME_ENCODER_KEY_UP = 0x03, MONOME_ENCODER_KEY_DOWN = 0x04, MONOME_TILT = 0x05, /* update this if you add event types */ …
Ich bin nicht sicher, was dieses Problem verursacht, aber in einem Projekt, das ich erstelle, benötigt der Compiler Stunden, um ein Modul zu kompilieren. Die Gesamtgröße meiner Codebasis beträgt 352 KB, aber keines der Module ist größer als 10 KB. Ich verwende einen nativen Port, aber er ist sehr trivial. …
Beim Versuch, ein Problem in meinem Programm zu debuggen (2 Kreise mit gleichem Radius werden mit Gloss in unterschiedlichen Größen gezeichnet *), bin ich auf eine seltsame Situation gestoßen. In meiner Datei, die Objekte verarbeitet, habe ich die folgende Definition für a Player: type Coord = (Float,Float) data Obj = …
Was ist indizierte Monade und was ist die Motivation für diese Monade? Ich habe gelesen, dass es hilft, die Nebenwirkungen im Auge zu behalten. Aber die Typensignatur und Dokumentation führt mich nirgendwo hin. Was wäre ein Beispiel dafür, wie es helfen kann, Nebenwirkungen im Auge zu behalten (oder ein anderes …
Ich versuche und schaffe es nicht, die traverseFunktion zu nutzen Data.Traversable. Ich kann den Punkt nicht erkennen. Kann mir jemand bitte einen imperativen Hintergrund erklären, da ich einen imperativen Hintergrund habe? Pseudocode wäre sehr dankbar. Vielen Dank.
Die absurdFunktion in Data.Voidhat die folgende Signatur, wobei Voidder logisch unbewohnte Typ von diesem Paket exportiert wird: -- | Since 'Void' values logically don't exist, this witnesses the logical -- reasoning tool of \"ex falso quodlibet\". absurd :: Void -> a Ich kenne genug Logik, um die Bemerkung der Dokumentation …
Überall, wo ich es versucht habe map, fmaphat es auch funktioniert. Warum hatten die Schöpfer von Haskell das Bedürfnis nach einer mapFunktion? Könnte es nicht einfach das sein, was derzeit bekannt ist fmapund fmapaus der Sprache entfernt werden könnte?
Ich bin neu in der funktionalen Programmierung und habe kürzlich bei Learn You a Haskell gelernt , aber als ich dieses Kapitel durchging , blieb ich beim folgenden Programm hängen: import Control.Monad.Writer logNumber :: Int -> Writer [String] Int logNumber x = Writer (x, ["Got number: " ++ show x]) …
Beim Lesen dieses klassischen Papiers bin ich auf Paramorphismen fixiert. Leider ist der Abschnitt ziemlich dünn und die Wikipedia-Seite sagt nichts. Meine Haskell-Übersetzung lautet: para :: (a -> [a] -> b -> b) -> b -> [a] -> b para f base = h where h [] = base h …
Welche Möglichkeiten gibt es, wenn überhaupt, Offline-Dokumente für Haskell-Kernbibliotheken (und möglicherweise mehr) abzurufen? Manchmal bringe ich meinen Laptop zum Café, wo es kein WLAN gibt, und es wäre schön, etwas wie Hoogle zu haben, aber für den Offline-Gebrauch.
Ich hatte einen Daemon erstellt, der eine sehr primitive Form von ipc(Telnet und Senden eines Strings mit bestimmten Wörtern in einer bestimmten Reihenfolge) verwendete. Ich habe es herausgeschnappt und verwende es jetzt JSON, um Nachrichten an einen YesodServer weiterzuleiten . Es gab jedoch einige Dinge, die mir an meinem Design …
Ich versuche, die Ghci-Typanzeigen für meine Bibliotheken so intuitiv wie möglich zu gestalten, aber ich habe viele Schwierigkeiten, wenn ich erweiterte Typfunktionen verwende. Angenommen, ich habe diesen Code in einer Datei: {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeOperators #-} import GHC.TypeLits data Container (xs::[*]) = Container …
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.