Введение в функциональное программирование
Функциональное программирование с нуля
Объяснение функционального программирования с нуля, простой для понимания и практичного, с широкого спектра перспектив! ~ От теории категорий до строительства FRP
? Блок 1? Обзор
https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-1/
Это начало статьи.
Представление «наружного» функционального программирования
Что такое функциональное программирование?
Широкий спектр тем, в том числе тенденции в последнем сообществе программирования, процессоров и императивного программирования, типов в языках систем, абстракциях для структурированного программирования, введения в функциональные языки, отношения между терминами и математикой объектно-ориентированного и функционального программирования и философские аспекты функционального языка для нереального двигателя (Game Engine), SolidJS и FRP.
Quick Start and Setup для TypeScript и F# среды разработки
https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-1
Представление деталей, которые образуют скелет для функционального программирования
Функции первого класса, экспрессии лямбда, функции более высокого порядка, биномиальная оперативная связь, синтез функций, моноид
Без этого функциональное программирование не запустится, поэтому необходимо понимание
https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-2
Довольно глубоко вдаваясь в основную теорию функционального программирования
Мы постараемся предоставить простые в подходящих объяснениях, ссылаясь на известные статьи, направленные на читателей, которые особенно заинтересованы в теории категорий, которая, как считается, является трудной.
Неинтересные читатели не должны заставлять себя понять все, и они не против пропустить это.
https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-3
Включает краткое изложение содержания теории и диаграмм
Представляем Pipeline/List/Option/IO/Timeline/Async Monad
Реализация MONAD, написание конкретного кода с использованием F# и TypeScript
В конечном счете, мы стремимся построить минималистский FRP с нуля.
https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-4
Пример кода
https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-5
Для многих программистов
более того
Потому что это совокупность знаний в сфере
И редко, что такое «осознание» подробно объясняется.
Что такое функциональное программирование?
Объединение чистого подъема
Чистые функции не должны иметь побочные эффекты
«Переменная» неизменна
Есть референциальная прозрачность (давайте убедитесь)
В целом, именно так перечислены новые термины, а также функции и характеристики.
Все это довольно строгие правила , и они определенно являются требованиями, о которых программисты никогда не знали раньше, и они убирают свободу кодирования, заставляя их чувствовать, что они связаны руками и ногами программиста.
Истинная природа каждой терминологии - «Что это на самом деле?» На самом деле, читатели не объясняются должным образом до самого конца.
Почему это должно быть концепцией? Почему мы не должны быть такими ограниченными? ? Поскольку слово "что это на самом деле?" Не обработано должным образом, его часто подталкивают вместе с новым кодом, а также «вы можете написать такой красивый код» или «Чувствовали ли вы какие -либо преимущества?»
На самом деле, эти новые термины и понятия имеют простые и солидные сходства , и есть принципиально понятия, о которых вы должны знать, и вы должны сначала полностью объяснить их.
Это отличный процесс «осознания», и на самом деле «осознание» - это интеллектуальное исследование и приключение , и это нечто очень интересное.
Однако, поскольку главная цель комментария - охватить эти перечисленные функции и связать каждый из них с убедительным объяснением, это контрпродуктивное отношение, поэтому это самое важное «распознавание» может быть просто затронуто или полностью проигнорировано в качестве бонуса.
Человек, который объясняет историю, может «действительно не понимает» (я думаю, что это на самом деле много случаев), или для тех, кто ее знает, но уже освоил ее, это хлопот, чтобы объяснить это любезно, так что легко сказать: «Я сказал, верно?»
Конечно, я не знаю всех объяснений, но я думаю, что большинство объяснений по этой причине потерпели неудачу.
Для некоторых людей мир знает | Неизвестно ~ «Что я знаю» и «Что я не знаю»
Конечно, в мире в мире есть больше «вещей, которые вы не знаете», и невозможно просто использовать соотношение этого графика, поэтому размер «вещи, которые вы знаете», довольно преувеличен для объяснения.
Акт постепенного расширения области «знания вещей» известных - это приобретение знаний , как будто постепенно заменить область неизвестных «знание вещей»
Например, если мы ограничиваемся полями программирования и этого,
Я хочу выучить язык программирования ржавчины !
Я хочу иметь возможность освоить нереальный двигатель 5 !
Я хочу узнать больше о практических методах Docker !
Это будет так
Rust, Unreal Engine 5, Docker и другие являются известными «известными» технологиями, которые известны в программах и в мире ИТ.
Знаменитый «известный» здесь не означает, что все известны, известны или знакомы с технологией, а скорее, что их имя хорошо известно, хорошо известно или хорошо известно.
Другими словами, знаете ли вы содержимое технологии или нет, существуют неизвестные области, которые даже не являются в целом известными, неизвестными, неизвестными областями, которые даже не известны.
«Части» функционального программирования - это не технология, которая уже хорошо известна общественности, такую как Rust и Docker.
Чтобы изучить функциональное программирование
Не совсем (не реализован)
Известный
Процесс = осознание важнее всего
Тем не менее, многие из объяснений функционального программирования, которые в изобилии на улицах пытаются объяснить новые концепции, необходимые для функционального программирования, которые, вероятно, неизвестны читателям и даже не знают, уже хорошо известны и известны.
Этот подход не работает
результат,
«Функциональное программирование обладает знанием, что это чистые функции».
«Чистые функции являются прозрачными ссылками»
«Чистые функции не вызывают побочные эффекты».
Это невероятное состояние, в котором совершенно непостижимое объяснение находится в обычном режиме, где предпринимается незнакомая концепция, чтобы объяснить что -то неизвестное с другой незнакомым концепцией или включает в себя сборку чего -то в воздухе без фундамента.
Или, в тех случаях, когда вы инстинктивно понимаете, что это плохо, вы можете запустить довольно необычный пример и написать пример кода, чтобы попытаться убедить читателя.
В целом, эти два варианта являются сутью, и истинная природа фундаментальной концепции «Осознание» не упоминается и никогда не объясняется таким образом, что дает читателю осознание важного читателя.
Объясните еще одно неизвестное слово со словами, которых вы не знаете ← не для обсуждения
Показание образца кода для единственного случая, реконструируя неизвестные концепции в разуме читателя ← Есть редко любые гения, которые могут это сделать
Существует также «метод сопоставления между ними».
Это шаблон , где вы пишете код для Haskell, функциональный язык и называете его «введением в функциональное программирование или« отраслевую теорию ».
Объяснение новой концепции функционального программирования с неизвестными языковыми спецификациями для Хаскелла.
Мы показываем пример кода для неизвестного языка Haskell, который реконструирует неизвестные концепции функционального программирования и теории категорий в умах читателей.
Это «соответствие двумя», конечно, неловко, но на самом деле существует резкая текущая ситуация в мире программирования, где люди, которые пришли к нему, чтобы понять его, по крайней мере, кто может написать код Хаскелла, воспроизводят тот же подход, который они должны были понять.
Неизвестно: «Неизвестно» знание,
Знает: «Что я знаю»
Неизвестные "вещи, которые я не знаю"
Есть оба
Чтобы прояснить это, это только вопрос концептуальной классификации, но также можно переписать графики.
Во -первых, нижняя половина обычно замечается, известная, известная область известной
Опять же, этот подход работает, если цель, которую вы хотите изучить, уже является известной технологией, ржавчиной, нереализованным двигателем или докером.
Однако этот подход не работает в функциональном программировании
Прежде всего, очень важно подтвердить, что известные знают, «осознает, что вы знаете».
Например, каждый должен быть «очень знаком с« "добавлением", вычитанием "," умножением "и" разделением ", которое они узнали в начале в математике начальной школы.
Эта книга фактически начинается на этом уровне и разработана более спланированным образом, чем вышеуказанная политика.
В конечном счете, обучение означает расширение ваших знаний на основе вещей, которые вы уже хорошо знаете.
То, что вы уже знаете, на самом деле что -то подобное, когда вы смотрите на функциональное программирование.
Unkown знает: «Я не понимаю, что я знаю»
Известно знает: «Я знаю, что я знаю»
Это процесс «уведомления» и не требует новых задач для покупки новых «вещей» у неизвестных до сих пор, что делает его очень легким и плавным.
Другими словами, каждый, кто заканчивает из начальной школы, «очень хорошо знают», «добавление», «вычитание», «умножение» и «разделение», являются солидными знаниями для этого человека, и нет необходимости переделать арифметическое упражнение.
Это отличный интеллектуальный актив, который человек уже усердно работал, чтобы приобрести в начальной школе.
Тем не менее, как эта «алгебраическая структура» называется «Четвертая арифметика» приводит к функциональному программированию и концепциям, называемым монадами? Большинство людей не знают, они неизвестны
После того, как у вас есть «осознание», эта с трудом заработанная интеллектуальная собственность, называемая «агрегационной арифметикой», может быть полностью использована так же, как есть, в знании функционального программирования.
Следовательно, возмутительно уведомлять, информировать, учит или объяснять это «осознание»; Это либо небрежность объяснения, либо просто само объяснение, но на самом деле последний случай очень распространен.
Эта книга является тщательной попыткой с этой задачей.
Если вы «не понимаете» этого, то стоит прочитать эту книгу самостоятельно.
Следующий шаг сосредоточится на неизвестном известном «Я не понимаю, что я знаю», и войдите в область неизвестного неизвестного неизвестного «Я не понимаю, чего не знаю».
Это включает, например, теоретическую физическую перспективу [поток времени]
Хорошо известная книга, которая вводит «обработку времени» в функциональном программировании с точки зрения теоретической физики,-это «структура и интерпретация компьютерных программ», которая часто используется в качестве сокращения SICP в исходном названии.
Структура и интерпретация компьютерных программ HardCover - 2000/2/1 Геральд Джей Суссман (автор), Джули Суссман (автор), Гарольд Эблсон (автор) и еще 4
является
Что касается теоретической физической перспективы «обработки времени» в функциональном программировании , по крайней мере, я не помню, чтобы видел ни одного комментария, за исключением SICP, поэтому я думаю, что это важная тема, которой пренебрегают общественностью.
Эта книга является тщательной попыткой с этой задачей.
Если вы «не понимаете» этого, то стоит прочитать эту книгу самостоятельно.
При написании этой книги я разработал и использовал свой собственный редактор Wysiwyg (расширение VSCODE), чтобы эффективно вставить огромное количество изображений и записать отметки.
Markdownnote