Einführung in die funktionale Programmierung
Funktionelle Programmierung von Grund auf neu
Erklären Sie die funktionale Programmierung von Grund auf, leicht verständlich und praktisch aus einer Vielzahl von Perspektiven! ~ Von der Kategorie -Theorie zur Konstruktion von FRP
Einheit 1? ÜBERBLICK
https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-1/
Dies ist der Beginn des Artikels.
Einführung der "außerhalb" der funktionalen Programmierung
Was ist funktionale Programmierung?
Eine breite Palette von Themen, einschließlich Trends in der neuesten Programmiergemeinschaft, CPU und imperativen Programmierungen, Typen in Systemsprachen, Abstraktionen zu strukturierten Programmierungen, Einführung in funktionale Sprachen, Beziehungen zwischen Begriffen und Mathematik der objektorientierten und funktionalen Programmierung sowie philosophischer Aspekte der unbemerkten Engine (Game Engine) Funktions Sprache, Solidjs, Solidjs, und Frecise, und Frecise, und Frequent, Solidjs, Solidjs, und Frequent, und Frequent, Solidjs und Solidjs sowie Frequenz.
Schnellstart und Setup für Typscript- und F# -Entwicklungsumgebungen
https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-1
Einführung der Teile, die das Skelett für die funktionelle Programmierung bilden
First -Class -Funktionen, Lambda -Ausdrücke, Funktionen höherer Ordnung, Binomial -Betriebskonnektivität, Funktionssynthese, Monoid
Ohne dies wird die funktionale Programmierung nicht beginnen, daher ist ein Verständnis erforderlich
https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-2
In die zugrunde liegende Theorie der funktionalen Programmierung ziemlich tief eingehen
Wir werden versuchen, leicht zu angemessene Erklärungen abzugeben, indem wir bekannte Artikel an Leser zitieren, die besonders an der Kategorie-Theorie interessiert sind, die als schwierig angesehen wird.
Uninteressierte Leser müssen sich nicht zwingen, alles zu verstehen, und es macht ihnen nichts aus, es zu überspringen.
https://zenn.dev/ken_okabe/books/functional-programming-from-cratch-3
Enthält eine Zusammenfassung des Inhalts und der Diagramme der Theorie
Einführung von Pipeline/List/Option/IO/Timeline/Async Monad
Implementieren von Monad, Schreiben von spezifischem Code mit F# und TypeScript
Letztendlich wollen wir eine minimalistische FRP von Grund auf neu aufbauen.
https://zenn.dev/ken_okabe/books/functional-programming-from-cratch-4
Beispielcode
https://zenn.dev/ken_okabe/books/functional-programming-from-cratch-5
Für viele Programmierer
darüber hinaus
Weil es ein Körper von Wissen im Reich ist
Und es ist selten, dass ein solches "Bewusstsein" im Detail erklärt wird.
Was ist funktionale Programmierung?
Kombination von reiner Fiunction
Reine Funktionen dürfen keine Nebenwirkungen haben
"Variable" ist unveränderlich
Es gibt referenzielle Transparenz (stellen wir sicher)
Im Allgemeinen werden neue Begriffe zusammen mit Funktionen und Spezifikationen aufgeführt.
All dies sind eher strenge Regeln , und sie sind definitiv Anforderungen, die Programmierer noch nie zuvor bewusst waren, und sie nehmen die Codierungsfreiheit weg, wodurch sie das Gefühl haben, die Hände und Füße des Programmierers gebunden zu sein.
Die wahre Natur jeder Terminologie lautet: "Was ist es wirklich?" Tatsächlich werden die Leser bis zum Ende nicht richtig erklärt.
Warum muss das das Konzept sein? Warum sollten wir nicht so eingeschränkt sein? ? Seit dem Wort "Was ist das wirklich?" Ist nicht ordnungsgemäß verarbeitet, es wird oft zusammen mit neuem Code sowie "Sie können so schöne Code schreiben" oder "Haben Sie irgendwelche Vorteile gefühlt?"
Tatsächlich haben diese neuartigen Begriffe und Konzepte einfache und solide Ähnlichkeiten , und es gibt grundsätzlich Konzepte, die Sie kennen, und Sie müssen sie zuerst gründlich erklären.
Dies ist ein großartiger Prozess des "Bewusstseins", und in der Tat ist "Bewusstsein" eine intellektuelle Erforschung und Abenteuer und etwas sehr Interessantes.
Da das Hauptziel des Kommentars darin besteht, diese aufgeführten Funktionen zu behandeln und jeweils mit einer überzeugenden Erklärung zu verknüpfen, ist es eine kontraproduktive Haltung, daher kann diese wichtigste "Erkennung" einfach als Bonus berührt oder vollständig ignoriert werden.
Die Person, die die Geschichte erklärt, mag "wirklich nicht verstehen" (ich denke, das sind eigentlich viele Fälle), oder für diejenigen, die sie wissen, aber bereits gemeistert haben, ist es ein Problem, sie freundlich zu erklären, also ist es leicht, einfach nur "Ich habe das gesagt, richtig?"
Natürlich kenne ich nicht alle Erklärungen, aber ich denke, die meisten Erklärungen sind aus diesem Grund gescheitert.
Für manche Menschen ist die Welt bekannt | Unbekannte ~ "Was ich weiß" und "Was ich nicht weiß"
Natürlich gibt es auf der Welt überwiegend mehr "Dinge, die Sie nicht kennen", und es ist unmöglich, das Verhältnis dieses Diagramms zu verwenden, sodass die Größe der "Dinge, die Sie kennen", ist für Erklärungen ziemlich übertrieben.
Der Akt der allmählichen Erweiterung des Gebiets von "Wissing Things" von Bekannten ist der Erwerb von Wissen , als würde er den Bereich der Unbekannten allmählich "Dinge wissen" ersetzen, "Dinge" zu ersetzen.
Zum Beispiel, wenn wir uns auf die Bereiche der Programmierung und IT beschränken,
Ich möchte den Programmiersprache Rost lernen!
Ich möchte in der Lage sein, Unreal Engine 5 zu beherrschen!
Ich möchte mehr über Dockers praktische Techniken erfahren!
Es wird so sein
Rust, Unreal Engine 5, Docker und andere sind bekannte "bekannte" Technologien, die in der Programmierung und der Welt berühmt sind .
Der berühmte "bekannte" hier bedeutet nicht, dass jeder bekannt, bekannt oder mit der Technologie vertraut ist, sondern dass sein Name bekannt, bekannt oder bekannt ist.
Mit anderen Worten, ob Sie den Inhalt der Technologie kennen oder nicht, es gibt unbekannte Bereiche, die nicht einmal bekannt sind , unbekannte, unbekannte Bereiche, die nicht einmal bekannt sind.
Die "Teile" der funktionalen Programmierung sind keine Technologie, die der Öffentlichkeit bereits bekannt ist, wie Rost und Docker.
Um funktionelle Programmierung zu lernen
Ungekannt (nicht realisiert)
Bekannt
Der Prozess = Bewusstsein ist wichtiger als alles andere als alles andere
Viele der funktionellen Programmiererklärungen, die auf den Straßen reichlich vorhanden sind, versuchen jedoch, neue Konzepte zu erklären, die für die funktionale Programmierung erforderlich sind, die den Lesern wahrscheinlich unbekannt sind und nicht einmal bewusst sind, sind bereits bekannt und bekannt.
Dieser Ansatz funktioniert nicht
das Ergebnis,
"Die funktionale Programmierung hat das Wissen, dass es sich um reine Funktionen handelt."
"Reine Funktionen sind transparent."
"Reine Funktionen verursachen keine Nebenwirkungen."
Dies ist ein unglaublicher Zustand, in dem sich eine völlig unverständliche Erklärung im normalen Modus befindet, in dem ein unbekanntes Konzept versucht wird, etwas Unbekanntes mit einem anderen unbekannten Konzept zu erklären oder etwas in der Luft ohne Fundament zusammenzustellen.
Oder in Fällen, in denen Sie instinktiv erkennen, dass es schlecht ist, können Sie ein ziemlich ungewöhnliches Beispiel starten und den Beispielcode schreiben, um zu versuchen, den Leser zu überzeugen.
Im Allgemeinen sind diese beiden Optionen das Endergebnis, und die wahre Natur des grundlegenden Konzepts "Bewusstsein" wird nicht erwähnt und wird nie so erklärt, dass der Leser das Bewusstsein des wichtigen Lesers schärft.
Erklären Sie ein anderes unbekanntes Wort mit Wörtern, die Sie nicht kennen ← Nicht zur Diskussion
Beispielcode für einen einzigartigen Fall zeigen, um unbekannte Konzepte im Kopf des Lesers zu rekonstruieren. ← Es gibt selten alle Genies, die das können
Es gibt auch eine "Matching -Technik zwischen den beiden".
Dies ist ein Muster , in dem Sie Code für Haskell, eine funktionale Sprache schreiben und eine "Einführung in die funktionale Programmierung oder eine" sektorale Theorie "nennen.
Erklären eines neuen Konzepts der funktionalen Programmierung mit unbekannten Sprachspezifikationen für Haskell.
Wir zeigen Beispielcode für die unbekannte Sprache Haskell, die die unbekannten Konzepte der funktionalen Programmierung und der Kategorie -Theorie in den Köpfen der Leser rekonstruiert.
Dieses "Matching the Two" ist natürlich umständlich, aber in der Programmierwelt gibt es tatsächlich eine harte aktuelle Situation, in der Menschen, die es verstanden haben, zumindest den Code von Haskell selbst schreiben können, den gleichen Ansatz reproduzieren, den sie verstehen mussten.
Unbekannt: "unbekanntes" Wissen,
Weiß: "Was ich weiß"
Unbekannte "Dinge, die ich nicht kenne"
Es gibt beides
Um dies zu verdeutlichen, handelt es sich nur um konzeptionelle Klassifizierungsdiagramme, aber es ist auch möglich, die Grafiken neu zu schreiben.
Erstens wird die untere Hälfte normalerweise bemerkt, bekannt, bekannt, bekannt als bekannt
Auch dieser Ansatz funktioniert, wenn das Ziel, das Sie lernen möchten, bereits eine bekannte Technologie, Rost, Unreal Engine oder Docker ist.
Dieser Ansatz funktioniert jedoch nicht in der funktionalen Programmierung
Erstens ist es sehr wichtig zu bekräftigen, dass Bekanntes weiß, dass "Sie wissen, was Sie wissen".
Zum Beispiel sollte jeder "sehr vertraut mit" "Addition", "Subtraction", "Multiplication" und "Division" sein, die er zu Beginn in der Mathematik der Grundschule gelernt hat.
Dieses Buch beginnt tatsächlich auf dieser Ebene und wurde auf geplante Weise als die oben genannte Richtlinie entwickelt.
Lernen bedeutet letztendlich, Ihr Wissen auf der Grundlage von Dingen zu erweitern, die Sie bereits gut kennen.
Was Sie bereits wissen, ist tatsächlich so etwas, wenn Sie sich die funktionale Programmierung ansehen.
Unkown weiß: "Ich merke nicht, was ich weiß"
Bekannt weiß: "Ich bin mir bewusst, was ich weiß"
Dies ist ein Prozess der "Benachrichtigung" und erfordert keine neuen Aufgaben, um neue "Dinge" von Unbekannten bisher zu kaufen, was es sehr einfach und glatt macht.
Mit anderen Worten, jeder, der die Grundschule absolviert, hat "sehr gut", "Addition", "Subtraktion", "Multiplikation" und "Division" für diese Person ein solides Wissen, und es besteht keine Notwendigkeit, die arithmetische Drill zu wiederholen.
Dies ist ein großer intellektueller Kapital, an dem die Person in der Grundschule bereits hart gearbeitet hat.
Wie führt diese "algebraische Struktur" "vierte Arithmetik" zu funktionaler Programmierung und Konzepten, die als Monaden bezeichnet werden? Die meisten Menschen wissen es nicht, sie sind nicht bekannt
Sobald Sie "Bewusstsein" haben, kann dieses hart verdiente geistige Eigentum als "Aggregationsarithmetik" vollständig so genannt werden, wie es ist, in das Wissen der funktionalen Programmierung.
Daher ist es empörend, dieses "Bewusstsein" zu benachrichtigen, zu informieren, zu lehren oder zu erklären. Es ist entweder die Fahrlässigkeit des Erklärers oder einfach die Erklärung selbst, aber in Wirklichkeit ist der letztere Fall sehr häufig.
Dieses Buch ist ein gründlicher Versuch mit dieser Aufgabe.
Wenn Sie dies "nicht merken", dann lohnt es sich, dieses Buch selbst zu lesen.
Der nächste Schritt wird sich auf "Ich merken nicht klar, was ich weiß" konzentrieren und in den Bereich des unbekannten Unbekanntes Unbekanntes "Ich merke nicht merke, was ich nicht weiß".
Dies beinhaltet beispielsweise die theoretische Physikperspektive des Zeitflusss [Zeitfluss]
Ein bekanntes Buch, das die "Zeithandhabung" in funktionaler Programmierung aus der Perspektive der theoretischen Physik einführt, ist "Struktur und Interpretation von Computerprogrammen", die häufig als Abkürzung von SICP im ursprünglichen Titel verwendet wird.
Struktur und Interpretation von Computerprogrammen Hardcover - 2000/2/1 Gerald Jay Sussman (Autor), Julie Sussman (Autor), Harold Ableson (Autor), & 4 weitere
Ist
Was die theoretische Physikperspektive der "Zeithandhabung" in der funktionalen Programmierung angeht, erinnere ich mich zumindest nicht daran, einen einzigen Kommentar mit Ausnahme von SICP zu sehen, daher denke ich, dass es ein wichtiges Thema ist, das von der Öffentlichkeit vernachlässigt wird.
Dieses Buch ist ein gründlicher Versuch mit dieser Aufgabe.
Wenn Sie dies "nicht merken", dann lohnt es sich, dieses Buch selbst zu lesen.
Beim Schreiben dieses Buches habe ich meinen eigenen Wysiwyg -Editor (eine Erweiterung von VSCODE) entwickelt und verwendet, um eine große Anzahl von Bildern effizient einzufügen und Markdown zu schreiben.
Markdownnote