Introducción a la programación funcional
Programación funcional desde cero
¡Explicando la programación funcional desde cero, fácil de entender y práctica, desde una amplia gama de perspectivas! ~ De la teoría de la categoría a la construcción de FRP
? Unidad 1? DESCRIPCIÓN GENERAL
https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-1/
Este es el comienzo del artículo.
Introducir el "exterior" de la programación funcional
¿Qué es la programación funcional?
Una amplia gama de temas que incluyen tendencias en la última comunidad de programación, CPU y programación imperativa, tipos en lenguajes de sistemas, abstracciones a programación estructurada, introducciones a lenguajes funcionales, relaciones entre términos y matemáticas de la programación de objetos y funcionales, y los aspectos filosóficos del motor irreal (motor de juego) en el lenguaje funcional, los sólidos y los sólidos y los frp.
Inicio y configuración rápidos para entornos de desarrollo de TypeScript y F#
https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-1
Introducir las piezas que forman el esqueleto para la programación funcional
Funciones de primera clase, expresiones lambda, funciones de orden superior, conectividad operacional binomial, síntesis de funciones, monoide
Sin esto, la programación funcional no comenzará, por lo que es necesario comprender
https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-2
Entrar en la teoría subyacente de la programación funcional bastante profundamente
Intentaremos proporcionar explicaciones fáciles de enfocar, citando artículos conocidos dirigidos a lectores que están particularmente interesados en la teoría de la categoría, lo que se cree que es difícil.
Los lectores desinteresados no tienen que obligarse a comprender todo, y no les importa omitirlo.
https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-3
Incluye un resumen del contenido y diagramas de la teoría
Introducción de Pipeline/List/Option/IO/Timeline/Async Monad
Implementación de la mónada, escribir código específico usando f# y typeScript
En última instancia, nuestro objetivo es construir un FRP minimalista desde cero.
https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-4
Código de muestra
https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-5
Para muchos programadores
además
Porque es un cuerpo de conocimiento en el reino
Y es raro que tal "conciencia" se explique en detalle.
¿Qué es la programación funcional?
Combinando el fiteo puro
Las funciones puras no deben tener efectos secundarios
"Variable" es inmutable
Hay transparencia referencial (asegurémonos)
En general, así es como se enumeran los nuevos términos, junto con características y especificaciones.
Todas estas son reglas bastante estrictas , y definitivamente son requisitos de los que los programadores nunca antes habían estado al tanto, y eliminan la libertad de codificación, haciéndoles sentir que están atados las manos y los pies del programador.
La verdadera naturaleza de cada terminología es "¿Qué es realmente?" De hecho, los lectores no se explican correctamente hasta el final.
¿Por qué ese tiene que ser el concepto? ¿Por qué no deberíamos estar tan restringidos? ? Desde la palabra "¿Qué es eso realmente?" no se procesa correctamente, a menudo se empuja junto con un nuevo código, así como "puede escribir un código tan hermoso" o "¿Sentiste algún beneficio?"
De hecho, estos nuevos términos y conceptos tienen similitudes simples y sólidas , y hay conceptos fundamentales que debe tener en cuenta, y primero debe explicarlos a fondo.
Este es un gran proceso de "conciencia", y de hecho, la "conciencia" es una exploración y aventura intelectual , y es algo muy interesante.
Sin embargo, debido a que el objetivo principal del comentario es cubrir estas características enumeradas y vincular cada una con una explicación convincente, es una actitud contraproducente, por lo que este "reconocimiento" más importante puede ser simplemente tocado o completamente ignorado, como una ventaja.
La persona que explica la historia puede "realmente no entender" (creo que esto es en realidad muchos casos), o para aquellos que la conocen pero que ya la han dominado, es una molestia explicarlo amablemente, por lo que es fácil decir "Dije eso, ¿verdad?"
Por supuesto, no sé todas las explicaciones, pero creo que la mayoría de las explicaciones han fallado por esta razón.
Para algunas personas, el mundo es conocido | Incógnitas ~ "lo que sé" y "lo que no sé"
Por supuesto, hay abrumadoramente más "cosas que no sabes" en el mundo, y es imposible usar la relación de este gráfico, por lo que el tamaño de "cosas que sabes" es bastante exagerada para la explicación.
El acto de expandir gradualmente el área de "Conocimiento" conocido es la adquisición del conocimiento , como si reemplazar gradualmente el área de las incógnitas "saber cosas"
Por ejemplo, si nos limitamos a los campos de la programación y la TI,
¡Quiero aprender el óxido del lenguaje de programación!
¡Quiero poder dominar Unreal Engine 5 !
¡Quiero saber más sobre las técnicas prácticas de Docker !
Será así
Rust, Unreal Engine 5, Docker y otros son tecnologías "conocidas" bien conocidas que son famosas en el mundo de la programación y la TI.
El famoso "conocido" aquí no significa que todos sean bien conocidos, conocidos o familiarizados con la tecnología, sino que su nombre es bien conocido, conocido o conocido.
En otras palabras, ya sea que conozca el contenido de la tecnología o no, existen áreas desconocidas que ni siquiera son áreas generalmente conocidas, desconocidas y desconocidas que ni siquiera son bien conocidas.
Las "partes" de la programación funcional no son tecnología que ya sea bien conocida por el público, como Rust y Docker.
Para aprender programación funcional
Unkown (no realizado)
Conocido
El proceso = conciencia es más importante que cualquier cosa
Sin embargo, muchas de las explicaciones de programación funcional que abundan en las calles intentan explicar los nuevos conceptos necesarios para la programación funcional, que probablemente sean desconocidas para los lectores y ni siquiera son conscientes, ya son conocidos y conocidos.
Este enfoque no funciona
el resultado,
"La programación funcional tiene el conocimiento de que son funciones puras".
"Las funciones puras son de referencia transparentes"
"Las funciones puras no causan efectos secundarios".
Este es un estado increíble en el que una explicación completamente incomprensible está en modo normal, donde se intenta explicar un concepto desconocido para explicar algo desconocido con otro concepto desconocido, o eso implica ensamblar algo en el aire sin una base.
O, en los casos en que te das cuenta instintivamente de que es malo, puedes iniciar un ejemplo bastante inusual y escribir el código de muestra para intentar persuadir al lector.
En general, estas dos opciones son el resultado final, y la verdadera naturaleza del concepto fundamental, "conciencia", no se menciona, y nunca se explica de una manera que le da al lector la conciencia del lector importante.
Explica otra palabra desconocida con palabras que no conoces ← No para discusión
Mostrando el código de muestra para un caso singular, reconstruyendo conceptos desconocidos en la mente del lector ← rara vez hay genios que puedan hacer eso
También hay una "técnica de coincidencia entre los dos".
Este es un patrón en el que escribe código para Haskell, un lenguaje funcional, y lo llama "Introducción a la programación funcional o una" teoría sectorial ".
Explicando un nuevo concepto de programación funcional con especificaciones de lenguaje desconocidas para Haskell.
Mostramos el código de muestra para el lenguaje desconocido Haskell, que reconstruye los conceptos desconocidos de la programación funcional y la teoría de la categoría en las mentes de los lectores.
Esta "coincidencia de los dos" es, por supuesto, incómoda, pero en realidad hay una dura situación actual en el mundo de la programación, donde las personas que lo han llegado, al menos quién puede escribir el código de Haskell, están reproduciendo el mismo enfoque que han tenido que entender.
Desconocido: conocimiento "desconocido",
Sabe: "Lo que sé"
Incansados "Cosas que no sé"
Hay ambos
Para aclarar esto, es solo una cuestión de diagramas de clasificación conceptual, pero también es posible reescribir los gráficos.
Primero, la mitad inferior generalmente se nota, bien conocida, área conocida de conocido
Una vez más, este enfoque funciona si el objetivo que desea aprender ya es una tecnología bien conocida, óxido, motor irreal o Docker.
Sin embargo, este enfoque no funciona en la programación funcional
En primer lugar, es muy importante reafirmar que Know Know es "consciente de lo que sabes".
Por ejemplo, todos deberían estar "muy familiarizados con la" "adición", "resta", "multiplicación" y "división" que aprendieron al principio en las matemáticas de la escuela primaria.
Este libro en realidad comienza en este nivel y está diseñado de una manera más planificada que la política anterior.
En última instancia, aprender significa ampliar su conocimiento en función de las cosas que ya conoce bien.
Lo que ya sabes es en realidad algo como esto cuando miras la programación funcional.
Unkown sabe: "No me doy cuenta de lo que sé"
Conocido sabe: "Soy consciente de lo que sé"
Este es un proceso de "notificación" y no requiere nuevas tareas para comprar nuevas "cosas" de incógnitas hasta ahora, lo que lo hace muy fácil y suave.
En otras palabras, todos los que se gradúan de la escuela primaria tienen "saber muy bien", "adición", "resta", "multiplicación" y "división", son un conocimiento sólido para esa persona, y no hay necesidad de rehacer el taladro aritmético.
Este es un gran activo intelectual que la persona ya ha trabajado duro para adquirir en la escuela primaria.
Sin embargo, ¿cómo conduce esta "estructura algebraica" llamada "cuarta aritmética" a programación funcional y conceptos llamados mónadas? La mayoría de la gente no sabe, no se los conocen
Una vez que tenga "conciencia", esta propiedad intelectual ganada con tanto esfuerzo llamada "aritmética agregacional" puede usarse completamente tal como es, en el conocimiento de la programación funcional.
Por lo tanto, es indignante notificar, informar, enseñar o explicar esta "conciencia"; Es la negligencia del explicador o simplemente la explicación en sí, pero en realidad, este último caso es muy común.
Este libro es un intento exhaustivo con esta tarea en mente.
Si "no te das cuenta" de esto, entonces vale la pena leer este libro por su cuenta.
El siguiente paso se centrará en "No me doy cuenta de lo que sé" en el área de desconocida desconocida Desconocida "No me doy cuenta de lo que no sé".
Esto incluye, por ejemplo, la perspectiva de física teórica del [flujo de tiempo]
Un libro bien conocido que introduce "manejo de tiempo" en la programación funcional desde una perspectiva física teórica es la "estructura e interpretación de los programas informáticos", que a menudo se usa como la abreviatura de SICP en el título original.
Estructura e interpretación de programas de computadora Tapa dura - 2000/2/1 Gerald Jay Sussman (autora), Julie Sussman (autora), Harold Ableson (autor) y 4 más
es
En cuanto a la perspectiva de física teórica del "manejo del tiempo" en la programación funcional , al menos no recuerdo haber visto un solo comentario, con la excepción de SICP, por lo que creo que es un tema importante que el público descuida.
Este libro es un intento exhaustivo con esta tarea en mente.
Si "no te das cuenta" de esto, entonces vale la pena leer este libro por su cuenta.
Al escribir este libro, desarrollé y usé mi propio editor Wysiwyg (una extensión de VScode) para pegar eficientemente una gran cantidad de imágenes y escribir Markdown.
Nota