Als «functional-programming» getaggte Fragen

6
Was ist neu in rein funktionalen Datenstrukturen seit Okasaki?
Seit Chris Okasakis 1998 erscheinendem Buch "Rein funktionale Datenstrukturen" sind nicht mehr allzu viele neue aufregende rein funktionale Datenstrukturen aufgetaucht. Ich kann nur einige nennen: IntMap (ebenfalls von Okasaki im Jahr 1998 erfunden, aber in diesem Buch nicht vorhanden) Fingerbäume (und ihre Verallgemeinerung über Monoide) Es gibt auch einige interessante …






5
Gibt es kommentierte formale Verifizierungssysteme für reine funktionale Programmiersprachen?
ACSL (Ansi C Specification Language) ist eine mit speziellen Kommentaren versehene Spezifikation für C-Code, mit der C-Code formal verifiziert werden kann. Ich habe es nicht untersucht, aber ich stelle mir vor, dass die in ACSL- Verifizierern verwendeten formalen Methoden Hoare Logic ähneln würden. Für reine funktionale Sprachen wie Haskell kann …

1
Was sind die praktischen Probleme mit Schnitt- und Vereinigungstypen?
Ich entwerfe eine einfache statisch typisierte funktionale Programmiersprache als Lernerfahrung. Es scheint, dass das Typsystem, das ich bisher implementiert habe, (mit ein wenig zusätzlicher Arbeit) Schnitt- und Vereinigungstypen enthalten könnte, z. B .: <Union String Integer> <Union Integer Foo> Der Schnittpunkt der beiden oben genannten Typen wäre eine Ebene Integer …

2
Können die Kosten für GC bei der Analyse der Laufzeit von Worst-Case-Datenstrukturen, die in einer Programmiersprache mit Speicherbereinigung angegeben sind, vernachlässigt werden?
Mir ist gerade aufgefallen, dass ich davon ausgegangen bin, dass meine Frage mit "Ja" beantwortet wurde, aber ich habe keinen guten Grund. Ich stelle mir vor, dass es vielleicht einen Müllsammler gibt, der nachweislich nur die Worst-Case-Verlangsamung einführt . Gibt es eine definitive Referenz, die ich zitieren kann? In meinem …

2
Was sind die Grenzen der gesamten funktionalen Programmierung?
Was sind die Einschränkungen der gesamten funktionalen Programmierung? Es ist nicht vollständig für Turing, unterstützt jedoch eine große Teilmenge der möglichen Programme. Gibt es wichtige Konstrukte, die Sie in einer Turing-vollständigen Sprache schreiben könnten, aber nicht in einer vollständigen funktionalen Sprache? Und ist es richtig zu sagen, dass Programme, die …

2
Kategorietheorie, rechnerische Komplexität und kombinatorische Zusammenhänge?
Ich habe versucht, " Pearls of Functional Algorithm Design " und anschließend " The Algebra of Programming " zu lesen , und es gibt eine offensichtliche Korrespondenz zwischen rekursiv (und polynomiell) definierten Datentypen und kombinatorischen Objekten mit derselben rekursiven Definition und anschließendem Führen auf die gleiche formale Potenzreihe (oder auf …

4
Wie unterscheiden sich imperative Sprachen stärker voneinander als funktionale Sprachen?
Ich lese Simon Peyton Jones ' Die Implementierung funktionaler Programmiersprachen und es gibt eine Aussage, die mich ein wenig überrascht hat (auf Seite 39): Funktionale Sprachen sind in viel stärkerem Maße als imperative Sprachen syntaktische Variationen voneinander mit relativ wenigen semantischen Unterschieden. Nun, dies wurde 1987 geschrieben und meine Gedanken …

3
Leser, Schreiber Monaden
Sei ein CCC . Lassen ein Produkt bifunctor auf sein . Da Cat CCC ist, können wir curry :CCC(×)(×)(\times)CCC(×)(×)(\times) curry(×):C→(C⇒C)curry(×):C→(C⇒C)curry (\times) : C \rightarrow(C \Rightarrow C) curry(×)A=λB.A×Bcurry(×)A=λB.A×Bcurry (\times) A = \lambda B. A \times B Die Funktorkategorie hat die übliche monoidale Struktur. C⇒CC⇒CC \Rightarrow C A monoid in ist ein …

3
Bootstrapping einer Fingerbaumstruktur
Nachdem ich einige Zeit mit 2-3 Fingerbäumen gearbeitet habe, war ich bei den meisten Operationen von deren Geschwindigkeit beeindruckt. Das einzige Problem, auf das ich gestoßen bin, ist der große Aufwand, der mit der anfänglichen Erstellung eines großen Fingerbaums verbunden ist. Da das Erstellen als eine Folge von Verkettungsvorgängen definiert …

2
(Wie) Können wir NP-Probleme in Abwesenheit des Turing-Berechnungsmodells entdecken / analysieren?
Wie kann man aus rein abstrakten mathematischen / rechnerischen Gesichtspunkten überhaupt Probleme wie 3 - SAT, Teilmenge Summe, Handlungsreisender usw. Entdecken oder über sie nachdenken? Wären wir überhaupt in der Lage, sie nur unter funktionalen Gesichtspunkten sinnvoll zu beurteilen? Wäre es überhaupt möglich? Ich habe diese Frage nur von einem …

2
Welche persistente Datenstruktur für eine Menge von teilweise geordneten Elementen?
Ich muss Sätze von Elementen vom Typ a speichern. Typ a ist teilweise geordnet, sodass der Vergleich von und kleiner, größer, gleich oder unvergleichbar sein kann.a 2ein1ein1a_1ein2ein2a_2 Ein Problem mit Hashtabellen besteht darin, dass zwei gleiche Elemente unterschiedlich dargestellt werden können und ich keinen Zugriff auf eine mit Gleichheit konsistente …


1
Warum erfordern funktionale Programmiersprachen die Garbage Collection?
Was hindert ghc daran, Haskell in eine verkettete Programmiersprache wie kombinatorische Logik zu übersetzen und dann einfach die Stapelzuweisung für alles zu verwenden? Laut Wikipedia ist die Übersetzung von Lambda-Kalkül in kombinatorische Logik trivial, und auch verkettete Programmiersprachen können sich bei der Speicherzuweisung ausschließlich auf einen Stapel stützen. Ist es …

1
Eine mathematische (kategoriale) Beschreibung von Typklassen
Eine funktionale Sprache kann als eine Kategorie angesehen werden, in der ihre Objekte Typen sind und Morphismen zwischen ihnen funktionieren. Wie passen Typklassen in dieses Modell? Ich gehe davon aus, dass wir nur die Implementierungen berücksichtigen sollten, die die Bedingungen der meisten Typklassen erfüllen, aber nicht in Haskell ausgedrückt werden. …





2
Differenzlisten in der funktionalen Programmierung
Die Frage Was ist neu in rein funktionalen Datenstrukturen seit Okasaki? und die epische Antwort von jbapple, die anhand von Differenzlisten in der funktionalen Programmierung (im Gegensatz zur logischen Programmierung) erwähnt wurde, woran ich mich in letzter Zeit interessiert habe. Dies führte mich dazu, die Implementierung der Differenzliste für Haskell …

1
Was macht eine Sprache (und ihr Typensystem) in der Lage, Theoreme über ihre eigenen Begriffe zu beweisen?
Ich habe kürzlich versucht, Aarons Cedille-Core zu implementieren , eine minimalistische Programmiersprache, die mathematische Theoreme zu ihren eigenen Begriffen beweisen kann. Ich habe auch eine Induktion für λ-codierte Datentypen darauf nachgewiesen, was klarer machte, warum seine Erweiterungen notwendig wären. Trotzdem frage ich mich immer noch, woher diese Erweiterungen stammen. Warum …

2
Welche Beziehungen bestehen zwischen Alternative, MonadPlus (LeftCatch) und MonadPlus (LeftDistributive)?
Follow up Was ist ein Beispiel für eine Monade, die eine Alternative ist, aber keine MonadPlus? : Angenommen, ist eine Monade. Was sind die Beziehungen betweem ein Wesen Alternative , eine MonadPlusCatch und MonadPlusDistr ? mmmmmmFür jedes der sechs möglichen Paare hätte ich gerne entweder einen Beweis, dass eines ein …


1
Was genau bedeutet "semantisch beobachtbare" Nebenwirkung?
Ich habe Fragen zu reinen Funktionen. Laut Wikipedia-Seite ist eine der Voraussetzungen für eine reine Funktion: Die Auswertung des Ergebnisses verursacht keine semantisch beobachtbaren Nebenwirkungen oder Ausgaben, wie z. B. die Mutation veränderlicher Objekte oder die Ausgabe an E / A-Geräte. Was bedeutet das nun wirklich? Oder wie kann ich …

3
Welche Algorithmen können mit einer Gesamtfunktionssprache mit datenparallelen Operatoren ausgedrückt werden?
Stellen Sie sich eine funktionale Programmiersprache vor, deren einzige Datentypen numerische Skalare und beliebige Verschachtelungen von Arrays sind. Der Sprache fehlen alle Mittel zur unbegrenzten Iteration, daher sind die folgenden nicht zulässig: explizite Schleifen (ohne Nebenwirkungen sowieso nicht viel zu gebrauchen) Rekursion beliebige erstklassige Funktionen (kein y-Kombinator) Die Sprache hat …

1
Wie codiert man den abstrakten Algorithmus von Lamping mithilfe von Interaktionskombinatoren?
Interaktionskombinatoren wurden zuvor als Kompilierungsziel für den λ-Kalkül vorgeschlagen. Dieses Papier implementiert den vollständigen λ-Kalkül. Es ist auch bekannt, dass es möglich ist, Interaktionsnetzcodierungen des λ-Kalküls für die Teilmenge von λ-Termen zu optimieren , die EAL-typisierbar ist. In diesem Artikel wird diese Teilmenge des λ-Kalküls implementiert, indem EAL-typisierbare λ-Terme in …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.