Als «functional-programming» getaggte Fragen

Funktionale Programmierung ist ein Programmierparadigma, das hauptsächlich Funktionen als Mittel zum Erstellen von Abstraktionen und zum Ausdrücken von Berechnungen verwendet, die ein Computerprogramm umfassen.


3
ML-Funktion vom Typ 'a ->' b
Unser Professor hat uns gebeten, uns eine Funktion in OCaml zu überlegen, die den Typ hat 'a -> 'b dh eine Funktion eines Arguments, das alles sein kann und das etwas anderes zurückgeben kann. Ich dachte an die Verwendung raisein einer Funktion, die ihr Argument ignoriert: let f x = …

3
Wie man eine Sprache homoikonisch macht
Laut diesem Artikel gibt die folgende Zeile des Lisp-Codes "Hello world" in der Standardausgabe aus. (format t "hello, world") Lisp, eine homoikonische Sprache , kann Code wie folgt als Daten behandeln: Stellen Sie sich nun vor, wir hätten folgendes Makro geschrieben: (defmacro backwards (expr) (reverse expr)) rückwärts ist der Name …

1
Keine naiven Mengenmodelle der polymorphen Lambda-Rechnung?
In Philip Wadlers Aufsatz über Theorems for Free stellt er in Abschnitt 2 über Parametrizität fest, dass Es gibt keine naiven satztheoretischen Modelle der polymorphen Lambda-Rechnung In der naiven Mengenlehre sind Modelltypen Mengen und Funktionen Mengenlehrefunktionen, was vernünftig erscheint. Warum sagt er also, dass es keine naiven satztheoretischen Modelle der …

3
Theorie der Programmiersprache studieren
In letzter Zeit habe ich großes Interesse daran, Aspekte von (funktionalen) Programmiersprachen zu verstehen und zu beweisen. Wenn ich jedoch tiefer in die Materie eintauche, sind Dinge wie Berechnung, Kategorietheorie und Denotationssemantik ohne angemessene Erklärung etwas schwierig zu verstehen.λλ\lambda Ich habe SICP gelesen (ein ziemlich aufschlussreiches Buch), aber ich versuche, …

3
Wie würde sich eine CPU, die ausschließlich für die funktionale Programmierung ausgelegt ist, unterscheiden?
CPUs sind zu einem gewissen Grad unter Berücksichtigung der Software konzipiert, die die Leute implizit oder explizit dafür schreiben. Wenn Sie sich den Entwurf von Befehlssatzarchitekturen ansehen, scheint es mir, dass sie sehr "zwingend" sind, in dem Sinne, dass jeder Befehl einen Befehl im imperativen Stil codiert. Es scheint mir …



2
Bieten Funktionen höherer Ordnung der funktionalen Programmierung mehr Leistung?
Ich habe eine ähnliche Frage zu cstheory.SE gestellt . Laut dieser Antwort auf Stackoverflow gibt es einen Algorithmus, der auf einer nicht faulen reinen funktionalen Programmiersprache eine -Komplexität aufweist, während derselbe Algorithmus in der imperativen Programmierung . Das Hinzufügen von Faulheit zur FP-Sprache würde den Algorithmus zu .Ω ( n …


2
Sind CPU-Architekturen auf prozedurale Laufzeiten ausgerichtet?
Gibt es irgendwelche Änderungen, die an CPUs vorgenommen werden könnten, um sie für gleichzeitige Laufzeiten wie Rust leistungsfähiger zu machen? Gibt es beispielsweise Änderungen an Implementierungen für die Verzweigungsvorhersage oder an den Cachegrößen, die zu gleichzeitigen Laufzeiten führen könnten? Ich habe den Eindruck, dass die aktuellen CPU-Designs mehr für prozedurale …


1
Können Eigenschaften wie die Speichernutzung einer Funktion in einer abhängig typisierten Sprache ausgedrückt werden?
Angenommen, man möchte über Eigenschaften des Codes hinaus über Dinge wie Totalität und funktionale Reinheit nachdenken - man kümmert sich auch um den Speicherverbrauch oder die algorithmische Komplexität einer Funktion. Kann dies durch abhängige Typisierungs- und Effektsysteme erreicht werden?

2
Array-ähnliche unveränderliche (persistente) Datenstrukturimplementierung mit schneller Indizierung, Anhängen, Voranstellen und Iteration
Ich suche nach einer dauerhaften Datenstruktur ähnlich dem Array (aber unveränderlich), die schnelle Indizierungs-, Anhänge-, Voranstellungs- und Iterationsoperationen (gute Lokalität) ermöglicht. Clojure bietet dauerhaften Vektor, ist jedoch nur zum schnellen Anhängen geeignet. Scalas Vektor hat effektiv ein zeitlich konstantes Anhängen und Voranstellen, aber ich kann nicht verstehen, wie es implementiert …

1
Der „CPS“ -Ansatz hat die Leistung in SML / NJ stark beeinträchtigt. Argumentation erwünscht
In einem Kommentar zu Learning F #: Welche Bücher mit anderen Programmiersprachen können in F # übersetzt werden, um funktionale Konzepte zu lernen? Makarius erklärte: Beachten Sie, dass der "CPS" -Ansatz die Leistung in SML / NJ erheblich beeinträchtigt hat. Das physikalische Bewertungsmodell verstößt gegen zu viele Annahmen, die 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.