Awesome Functional Programming
Functional Programmingを扱う資料や関連プロジェクトをまとめたAwesomeリストです。
目次
ブログ記事
- Personal thoughts on the current functional programming bandwagon 題名とは裏腹に、関数型プログラミングの基本概念をいくつか明確にし、FPの歴史と命令型言語におけるFP機能の実装を説明し、宣言型プログラミングをめぐる騒ぎや近年人気を集めた理由を論じています。
- A Monad in Practicality - Controlling Time
- A Monad in Practicality - First Class Failures
- How to desugar Haskell Code
- Functors, Applicatives, And Monads In Pictures
- Monads Made Difficult
- Your easy guide to Monads, Applicatives, & Functors
- Async Streams in C#
- How to leverage functional programming in Kotlin to write better, cleaner code
論文
- Tradeoffs between Unique Types and Monads
- The implementation of Functional Programming Languages - Simon Peyton Jonesによる論文。
- Sound and Decidable Type Inference for Functional Dependencies - HaskellとGHCの中心的作者による、型推論に関するもう一つの非常に有名な論文。
- Template Meta-Programming for Haskell - Haskellでコンパイル時にコードを生成することに関する論文。
- Why Functional Programming Matters
- From Higher-Order Logic to Haskell: There and Back Again
- Translating Haskell to Isabelle
Wiki
- nLab - FPの主要な数学的背景である圏論の観点から、記事、議論、ツールを提供するWikiラボ。
- Haskell/Category Theory - Wikibooksによる、Haskellへ応用した圏論の優れた概要。
- Haskell Wiki
書籍
- Learn you a Haskell - 書籍だが、オンラインでも無料で読める。初心者に非常に優しい。
- The Little Prover - LISPで証明を書くための JBobという定理証明器を扱う。
- Isabelle/HOL - A Proof Assistant for Higher-Order Logic - Isabelle/HOLで論理形式体系を実装する書籍。
- The Little MLer - Standard MLで型、再帰的思考、その他の重要な話題を教えることへ重点を置いた書籍。
- Introduction to Programming using SML - 非常に数学的な方法でプログラム設計を紹介。
- How to Design Programs / 第2版
- Introduction to Functional Programming
- Haskell in Depth - Haskellの仕組みと正しい適用方法を教えるよう設計された例や応用場面を深掘りする、Haskellの2冊目として最適な書籍。
- Grokking Simplicity: Taming complex software with functional thinking - 現実の場面を使い、第一原理から関数型プログラミングを教える。
- Functional Programming in Scala, Second Edition - 新しい演習、注釈、Scala 3の完全な解説を加えて改訂された世界的ベストセラー。
- Functional Programming in C#, Second Edition - C#における関数型プログラミングの実例と実践的手法。
- Grokking Functional Programming - 関数型プログラミングの入門書。
- Functional Programming in Kotlin - より安全、単純、効果的なKotlinコードを提供するため、関数型プログラミングの技法と概念を習得。
- Functional Design and Architecture - HaskellなどのFP言語による例を通じ、関数型プログラミングで本番品質のアプリケーションを構築するための設計パターンとアーキテクチャを解説。
- Haskell Bookcamp - Haskellコードを記述し、実際の開発課題へ関数型プログラミングを適用する実践経験を得られる。
- Mastering Functional Programming - 命令型やOOPの経験者を、使用言語にかかわらず関数型プログラミングの世界へ案内。
- Jax in Action - JAX数値計算ライブラリに関する書籍。
- Learn PowerShell Scritping in a Month of Lunches - PowerShellスクリプトで複雑なタスクとプロセスを自動化。
- F# in Action - プロフェッショナルなアプリケーションを作成するために必要な、実践的F#開発スキルを扱う書籍。
- Elixir in Action, Third Edition - Elixir 1.14へ全面更新され、スケーラビリティ、耐障害性、高可用性の問題にElixirがどう対処するかを明らかにする定評あるベストセラー。
コミュニティ
- Lambda the Ultimate - 研究や論文、 学界の話題を議論するコミュニティ。議論の技術水準は非常に高い。
- FP Complete - 企業と学生がHaskellで関数型プログラミングを学び、実装することを支援するコミュニティ。最も有名なHaskell学習センターの一つ、School of Haskellを運営。
- Haskellers - Haskellプログラマーの交流拠点。
- ElixirLangMoscow - ロシアのElixirコミュニティ。
議論(Quora、Stack Overflow、Redditなど)
動画
- Dont fear the Monad - Microsoft研究者Brian Beckmanによる、 関数型プログラミングで最も難解な話題の一つの説明。
- Haskell is useless - Simon Peyton Jonesが 自身の創作物について謙虚すぎるほどに語る。
- Brian Beckman: The Zen of Stateless State
- Erik Meijer: Functional Programming
- Scala Monads: Declutter Your Code With Monadic Design
- Philip Wadler and Erik Meijer: On Programming Language Theory and Practice
- Kotlin for Android & Java Developers - Kotlinの関数型プログラミング、オブジェクト指向、KotlinによるAndroidアプリ構築を扱うLiveVideo講座。
- Do we really need OOD and FDD? - オブジェクト指向設計(OOD)と対比した関数型宣言的設計(FDD)。
- Functional Programming with TypeScript - 初心者向けYouTube再生リストで、Sahand Javidとともに関数型プログラミングを学び、fp-tsのようなライブラリを作成。
講義
- C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals - Haskellの作者の一人による講義シリーズ。
- Adventure with types in Haskell - Simon Peyton Jones - Simon Peyton Jonesによる、Haskellの強力な型システムの講義。
- The Algebra of Algebraic Data Types - 数学と、HaskellやMLなど一般的なFP言語の型システムである代数的データ型との関係を 非常に分かりやすく説明。
プラットフォーム
- [Paqmind.com] – プログラミングを学び、上達するためのガイドと課題。すべてのコンテンツが計算機科学とFPを指向。
ツール
- Isabelle/HOL - 高階論理に基づく汎用定理証明支援系。
リポジトリ
- Idris Koans - 依存型を備えた汎用関数型プログラミング言語Idrisを教えるプロジェクト。
- Functional Javascript Workshop - 関数型JavaScriptワークショップ。
- J-Bob - 書籍
The Little Proverに登場する定理証明支援系。 - Haskell Must Watch - Haskellに関する動画、講演、講座のリスト。
- Intro SML - 書籍
Introduction to Programming using SMLのコード、訂正、情報。 - Functional Programming In JavaScript - JavaScriptの関数型プログラミングリソース一覧。
- Functional Programming Jargon - FPの用語集を提供し、FPを学びやすくするプロジェクト。
- Bow - Swiftの型付き関数型プログラミング向け補助ライブラリ。
- Parsing With Haskell Parser Combinators - Haskellのパーサーコンビネーターを使う解析の段階的ガイド。
- Functional Programming Learning Path - 関数型プログラミングの学習パス。
人物
- Simon Peyton Jones - Haskell言語とGlasgow Haskell Compilerの作者の一人。Microsoft研究者。
- Philip Wadler - University of Edinburghの理論計算機科学教授。有名な論文Propositions as Typesの著者で、Javaジェネリック型を支えた中心人物の一人。
- Matthias Felleisen - How to Design ProgramsやThe Little Schemerなど、多数の書籍の著者。
- Erik Meijer - 元Microsoftソフトウェアアーキテクト、関数型プログラミング研究者。FP、ソフトウェア設計、リアクティブプログラミングの講義を行う。
- Brian Beckman - 元Microsoft研究者、現Amazonソフトウェアエンジニア。C#、LINQ、F#など、数多くのMicrosoft技術へのFP機能実装に貢献。
ライセンス
法律で認められる限り、Lucas Violaは本作品に関するすべての著作権および関連する権利または隣接権を放棄しています。
