update
This commit is contained in:
782
html/fsharp.html
Normal file
782
html/fsharp.html
Normal file
@@ -0,0 +1,782 @@
|
||||
<h1 id="awesome-f-awesome">Awesome F# <a href="https://awesome.re"><img
|
||||
src="https://awesome.re/badge.svg" alt="Awesome" /></a>
|
||||
<img src="https://fsharp.org/img/logo/fsharp.svg" width="48" height="48" align="right"/></h1>
|
||||
<p>F# is a programming language with focus on immutability, type
|
||||
inference, first-class functions, powerful data types and pattern
|
||||
matching, targeting .NET and other platforms.</p>
|
||||
<p>This is a curated list of awesome F# frameworks, libraries, software
|
||||
and resources.</p>
|
||||
<h2 id="contents">Contents</h2>
|
||||
<ul>
|
||||
<li><a href="#main-language-related-repositories">Main Language-Related
|
||||
Repositories</a></li>
|
||||
<li><a href="#f-wrappers-for-popular-net-libraries">F# Wrappers for
|
||||
Popular .NET Libraries</a></li>
|
||||
<li><a href="#actor-frameworks">Actor Frameworks</a></li>
|
||||
<li><a href="#build-tools">Build Tools</a></li>
|
||||
<li><a href="#cloud">Cloud</a></li>
|
||||
<li><a href="#code-generation">Code Generation</a></li>
|
||||
<li><a href="#compilers-for-other-platforms">Compilers for Other
|
||||
Platforms</a></li>
|
||||
<li><a
|
||||
href="#concurrent-asynchronous-and-parallel-programming">Concurrent,
|
||||
Asynchronous, and Parallel Programming</a></li>
|
||||
<li><a href="#configuration">Configuration</a></li>
|
||||
<li><a href="#data-science">Data Science</a></li>
|
||||
<li><a href="#development-tools">Development Tools</a>
|
||||
<ul>
|
||||
<li><a href="#ide">IDE</a></li>
|
||||
<li><a href="#editor-plugins">Editor Plugins</a></li>
|
||||
<li><a href="#performance-analysis">Performance Analysis</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#general-purpose-libraries">General Purpose
|
||||
Libraries</a></li>
|
||||
<li><a href="#game-development">Game Development</a></li>
|
||||
<li><a href="#gui">GUI</a></li>
|
||||
<li><a href="#http-clients">HTTP Clients</a></li>
|
||||
<li><a href="#logging">Logging</a></li>
|
||||
<li><a href="#package-management">Package Management</a></li>
|
||||
<li><a href="#parsing">Parsing</a></li>
|
||||
<li><a href="#serialization">Serialization</a></li>
|
||||
<li><a href="#simulation">Simulation</a></li>
|
||||
<li><a href="#static-site-generators">Static Site Generators</a></li>
|
||||
<li><a href="#testing">Testing</a></li>
|
||||
<li><a href="#type-providers">Type Providers</a>
|
||||
<ul>
|
||||
<li><a href="#creating-type-providers">Creating Type Providers</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#visualization">Visualization</a></li>
|
||||
<li><a href="#web-frameworks">Web Frameworks</a></li>
|
||||
<li><a href="#net-core-templates">.NET Core Templates</a></li>
|
||||
<li><a href="#resources">Resources</a>
|
||||
<ul>
|
||||
<li><a href="#blogs">Blogs</a></li>
|
||||
<li><a href="#books">Books</a></li>
|
||||
<li><a href="#cheatsheets">Cheatsheets</a></li>
|
||||
<li><a href="#community">Community</a></li>
|
||||
<li><a href="#other-lists">Other Lists</a></li>
|
||||
<li><a href="#websites">Websites</a></li>
|
||||
<li><a href="#videos">Videos</a></li>
|
||||
<li><a href="#courses">Courses</a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<h2 id="main-language-related-repositories">Main Language-Related
|
||||
Repositories</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/dotnet/fsharp">F# main
|
||||
repository</a></li>
|
||||
<li><a href="https://github.com/fsprojects">F# projects</a></li>
|
||||
<li><a href="https://github.com/fsharp/fslang-suggestions">F#
|
||||
suggestions</a></li>
|
||||
<li><a href="https://github.com/fsharp/fslang-design">F# RFCs</a></li>
|
||||
</ul>
|
||||
<h2 id="f-wrappers-for-popular-.net-libraries">F# Wrappers for Popular
|
||||
.NET Libraries</h2>
|
||||
<p>Looking to have a more enjoyable experience when consuming a popular
|
||||
.NET library? Here is a quick table.</p>
|
||||
<!-- The following table includes some entries that are duplicated in the list below. This is by design. -->
|
||||
<!--lint disable double-link -->
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 50%" />
|
||||
<col style="width: 50%" />
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th>.NET Library</th>
|
||||
<th>F# Wrapper</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td><a
|
||||
href="https://github.com/dotnet/aspnetcore/tree/main/src/Components">ASP.NET
|
||||
Core Blazor</a></td>
|
||||
<td><a href="https://github.com/fsbolero/Bolero">Bolero</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td><a href="https://github.com/dotnet/aspnetcore">ASP.NET Core</a></td>
|
||||
<td><a href="https://github.com/giraffe-fsharp/Giraffe">Giraffe</a> (+
|
||||
optionally <a
|
||||
href="https://github.com/SaturnFramework/Saturn">Saturn</a>)<br/><a
|
||||
href="https://github.com/Lanayx/Oxpecker">Oxpecker</a></td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td><a href="https://github.com/AvaloniaUI/Avalonia">Avalonia</a></td>
|
||||
<td><a
|
||||
href="https://github.com/fsprojects/Avalonia.FuncUI">Avalonia.FuncUI</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td><a href="https://github.com/dotnet/maui">MAUI</a>/<a
|
||||
href="https://github.com/xamarin/Xamarin.Forms">Xamarin.Forms</a></td>
|
||||
<td><a href="https://github.com/fabulous-dev/Fabulous">Fabulous</a></td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td><a href="https://github.com/microsoft/testfx">MSTest</a>/<a
|
||||
href="https://github.com/nunit/nunit">NUnit</a>/<a
|
||||
href="https://github.com/xunit/xunit">xUnit.net</a></td>
|
||||
<td><a href="https://github.com/fsprojects/FsUnit">FsUnit</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td><a
|
||||
href="https://github.com/dotnet/runtime/tree/main/src/libraries/System.Text.Json">System.Text.Json</a></td>
|
||||
<td><a
|
||||
href="https://github.com/Tarmil/FSharp.SystemTextJson">FSharp.SystemTextJson</a></td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td><a href="https://github.com/dotnet/wpf">WPF</a></td>
|
||||
<td><a href="https://github.com/elmish/Elmish.WPF">Elmish.WPF</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<!--lint enable double-link -->
|
||||
<h2 id="actor-frameworks">Actor Frameworks</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/akkadotnet/akka.net">Akka.NET</a> -
|
||||
Community-driven port of the popular Java/Scala framework Akka to
|
||||
.NET.</li>
|
||||
<li><a href="https://github.com/Horusiath/Akkling">Akkling</a> - F#
|
||||
typed API for Akka.NET.</li>
|
||||
<li><a href="https://github.com/OrleansContrib/Orleankka">Orleankka</a>
|
||||
- Functional extension for Microsoft Orleans framework.</li>
|
||||
<li><a href="https://github.com/dotnet/orleans">Orleans</a> -
|
||||
Distributed virtual actor model.</li>
|
||||
<li><a
|
||||
href="https://github.com/AsynkronIT/protoactor-dotnet">Proto.actor</a> -
|
||||
Cross-platform actor framework for .NET, Go, Java and Kotlin.</li>
|
||||
</ul>
|
||||
<h2 id="build-tools">Build Tools</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/fsharp/FAKE">FAKE</a> - “F# Make” is a
|
||||
cross platform build automation system.</li>
|
||||
<li><a href="https://github.com/OlegZee/Xake">Xake</a> - Another Make
|
||||
utility implementation on F#, fully declarative with no-brain
|
||||
parallelism, inspired by Shake.</li>
|
||||
</ul>
|
||||
<h2 id="cloud">Cloud</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/DanpowerGruppe/Chia">Chia</a> - Chia is
|
||||
a F# library which contains HelperFunctions for reporting, logging and
|
||||
Azure cloud operations.</li>
|
||||
<li><a href="https://github.com/CompositionalIT/farmer">Farmer</a> -
|
||||
Repeatable Azure deployments with ARM templates made easy.</li>
|
||||
<li><a href="https://github.com/mrbandler/FsFirestore">FsFirestore</a> -
|
||||
Functional F# library to access Firestore database hosted on Google
|
||||
Cloud Platform (GCP) or Firebase.</li>
|
||||
<li><a
|
||||
href="https://github.com/UnoSD/Pulumi.FSharp.Extensions">Pulumi.FSharp.Extensions</a>
|
||||
- F# computational expressions to reduce boilerplate in Pulumi
|
||||
code.</li>
|
||||
</ul>
|
||||
<h2 id="code-generation">Code Generation</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/Zaid-Ajaj/Hawaii">Hawaii</a> - A dotnet
|
||||
CLI tool to generate type-safe F# clients from OpenAPI/Swagger
|
||||
services.</li>
|
||||
<li><a href="https://github.com/MoiraeSoftware/myriad">Myriad</a> -
|
||||
Myriad is a pre-compilation code generator.</li>
|
||||
</ul>
|
||||
<h2 id="compilers-for-other-platforms">Compilers for Other
|
||||
Platforms</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/fable-compiler/Fable">Fable</a> - F# to
|
||||
JavaScript compiler.</li>
|
||||
<li><a href="https://github.com/kjnilsson/fez">Fez</a> - F# to Erlang
|
||||
compiler.</li>
|
||||
<li><a href="https://github.com/ZachBray/FunScript">FunScript</a> - F#
|
||||
to JavaScript compiler with JQuery etc. mappings through a TypeScript
|
||||
type provider.</li>
|
||||
<li><a href="https://github.com/calebh/Juniper">Juniper</a> - Functional
|
||||
Reactive Programming for the Arduino and other microcontrollers.</li>
|
||||
</ul>
|
||||
<h2 id="concurrent-asynchronous-and-parallel-programming">Concurrent,
|
||||
Asynchronous, and Parallel Programming</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/iyyel/fio">FIO</a> - A type-safe, highly
|
||||
concurrent and asynchronous library for F# based on pure functional
|
||||
programming.</li>
|
||||
<li><a
|
||||
href="https://github.com/fsprojects/FSharp.Control.AsyncSeq">FSharp.Control.AsyncSeq</a>
|
||||
- Asynchronous sequence support, integration with
|
||||
<code>IAsyncEnumerable</code>.</li>
|
||||
<li><a
|
||||
href="https://github.com/kekyo/FSharp.Control.FusionTasks">FSharp.Control.FusionTasks</a>
|
||||
- F# Async workflow <–> .NET Task/ValueTask easy seamless
|
||||
interoperability library.</li>
|
||||
<li><a
|
||||
href="https://github.com/fsprojects/FSharpx.Async">FSharpx.Async</a> -
|
||||
Collection of asynchronous programming utilities for F#.</li>
|
||||
<li><a href="https://github.com/Hopac/Hopac">Hopac</a> - Concurrent ML
|
||||
style concurrent programming library for F#.</li>
|
||||
<li><a href="https://github.com/TheAngryByrd/IcedTasks">IcedTasks</a> -
|
||||
Cold tasks, cancellable tasks, and extensions for the <code>async</code>
|
||||
workflow.</li>
|
||||
<li><a href="https://github.com/crowded/ply">Ply</a> - High performance
|
||||
System.Threading.(Value)Task computation expressions for F#.</li>
|
||||
<li><a href="https://github.com/dbrattli/Reaction">Reaction.AsyncRx</a>
|
||||
- An implementation of Async Observables in F# for .NET and Fable.</li>
|
||||
<li><a
|
||||
href="https://github.com/rspeele/TaskBuilder.fs">TaskBuilder.fs</a> - F#
|
||||
computation expression builder for System.Threading.Tasks.</li>
|
||||
</ul>
|
||||
<h2 id="configuration">Configuration</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/fsprojects/Argu">Argu</a> - Declarative
|
||||
CLI argument/XML configuration parser for F# applications.</li>
|
||||
<li><a href="https://github.com/demystifyfp/FsConfig">FsConfig</a> - F#
|
||||
library for reading configuration data from environment variables and
|
||||
AppSettings with type safety.</li>
|
||||
<li><a href="https://github.com/Meyhem/Skid">Skid</a> - Simple,
|
||||
single-file portable CLI utility for configuration templating.</li>
|
||||
<li><a href="https://github.com/docopt/docopt.fs/">docopt.fs</a> -
|
||||
Command line arguments parser, F# port of <a
|
||||
href="https://github.com/docopt/docopt">docopt</a>.</li>
|
||||
</ul>
|
||||
<h2 id="data-science">Data Science</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/BlueMountainCapital/Deedle">Deedle</a> -
|
||||
Exploratory data library for .NET.</li>
|
||||
<li><a href="https://github.com/DiffSharp/DiffSharp">DiffSharp</a> -
|
||||
Functional automatic differentiation (AD) library.</li>
|
||||
<li><a href="https://github.com/fslaborg/FsLab">FsLab</a> - A collection
|
||||
of libraries for data-science. It provides a rapid development
|
||||
environment that lets you write advanced analysis with few lines of
|
||||
production-quality code.</li>
|
||||
<li><a href="https://github.com/fsprojects/IfSharp">IfSharp</a> - F# for
|
||||
Jupyter Notebooks.</li>
|
||||
<li><a href="https://github.com/mathnet/mathnet-numerics">Math.NET
|
||||
Numerics</a> - Methods and algorithms for numerical computations in
|
||||
science, engineering and every day use. F# specific bindings
|
||||
available.</li>
|
||||
<li><a href="https://github.com/mathnet/mathnet-symbolics/">Math.NET
|
||||
Symbolics</a> - A basic open source computer algebra library for .NET,
|
||||
Silverlight and Mono written entirely in F#.</li>
|
||||
<li><a href="https://github.com/jackmott/SIMDArray">SIMDArray</a> - SIMD
|
||||
enhanced Array extensions for faster computation.</li>
|
||||
<li><a href="https://github.com/mrdimosthenis/Synapses">Synapses</a> -
|
||||
Neural network library in F#.</li>
|
||||
<li><a href="https://github.com/BayesWitnesses/m2cgen">m2cgen</a> - A
|
||||
CLI tool to transpile trained classic ML models into a native F# code
|
||||
with zero dependencies.</li>
|
||||
</ul>
|
||||
<h2 id="development-tools">Development Tools</h2>
|
||||
<h3 id="ide">IDE</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/Seng-Jik/FSharpPlayground">F#
|
||||
Playground</a> - Minimal playground for F#.</li>
|
||||
<li><a href="https://www.jetbrains.com/rider">JetBrains Rider</a> -
|
||||
Cross-platform .NET IDE with F# support (Proprietary, free for
|
||||
non-commercial use).</li>
|
||||
<li><a href="http://www.monodevelop.com/">MonoDevelop</a> -
|
||||
Cross-platform IDE mostly aimed at Mono/.NET developers.</li>
|
||||
<li><a href="https://www.visualstudio.com/">Visual Studio</a> - IDE from
|
||||
Microsoft with first class F# support (Windows only, Proprietary).</li>
|
||||
</ul>
|
||||
<h3 id="editor-plugins">Editor Plugins</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/fsharp/emacs-fsharp-mode">Emacs F#
|
||||
mode</a> - F# support in Emacs (including Intellisense and Interactive
|
||||
mode).</li>
|
||||
<li><a href="https://github.com/nightroman/FarNet">FSharpFar</a> - F#
|
||||
support for Far Manager.</li>
|
||||
<li><a href="https://github.com/fsprojects/FSharpLint">FSharpLint</a> -
|
||||
F# code linter.</li>
|
||||
<li><a href="https://github.com/fsprojects/fantomas">Fantomas</a> - F#
|
||||
code formatter.</li>
|
||||
<li><a href="http://ionide.io/">Ionide</a> - Atom Editor and Visual
|
||||
Studio Code package suite for cross platform F# development.</li>
|
||||
<li><a href="https://github.com/fsharp/vim-fsharp">Vim F#</a> - F#
|
||||
support for Vim.</li>
|
||||
<li><a href="https://github.com/AshleyF/VimSpeak">VimSpeak</a> -
|
||||
VimSpeak lets you control Vim with your voice using speech
|
||||
recognition.</li>
|
||||
<li><a
|
||||
href="https://github.com/pablofrommars/fsharp-notebook">fsharp-notebook</a>
|
||||
- Data science notebook for F# Interactive.</li>
|
||||
<li><a
|
||||
href="https://github.com/adelarsq/neofsharp.vim">neofsharp.vim</a> -
|
||||
Basic F# support for (Neo)Vim.</li>
|
||||
</ul>
|
||||
<h3 id="performance-analysis">Performance Analysis</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/d-edge/fasm">fasm</a> - F# JIT
|
||||
disassembler, as a dotnet tool.</li>
|
||||
</ul>
|
||||
<h2 id="general-purpose-libraries">General Purpose Libraries</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/xyncro/aether">Aether</a> - Optics
|
||||
library for F#, similar to the Haskell Data.Lens package.</li>
|
||||
<li><a href="https://github.com/fsprojects/Chessie">Chessie</a> -
|
||||
Railway-oriented programming.</li>
|
||||
<li><a href="https://github.com/pimbrouwers/Donald">Donald</a> - A
|
||||
simple F# interface for ADO.NET.</li>
|
||||
<li><a href="https://github.com/Zaid-Ajaj/DustyTables">DustyTables</a> -
|
||||
Thin F# API for SqlClient for easy data access to ms sql server with
|
||||
functional seasoning on top.</li>
|
||||
<li><a href="https://github.com/jack-pappas/ExtCore">ExtCore</a> -
|
||||
Extended core library for F#.</li>
|
||||
<li><a
|
||||
href="https://github.com/aaronpowell/fsharp.cosmosdb">FSharp.CosmosDb</a>
|
||||
- An F# wrapper around the CosmosDB SDK, making it more
|
||||
functional-friendly.</li>
|
||||
<li><a
|
||||
href="https://github.com/mvkara/fsharp-hashcollections">FSharp.HashCollections</a>
|
||||
- Fast hash-based immutable map and set.</li>
|
||||
<li><a href="https://github.com/Microsoft/fsharplu">FSharpLu</a> -
|
||||
Lightweight utilities for string manipulations, logging, collection data
|
||||
structures, file operations, text processing, security, async, parsing,
|
||||
diagnostics, configuration files and Json serialization.</li>
|
||||
<li><a href="https://github.com/gmpl/FSharpPlus">FSharpPlus</a> -
|
||||
Extensions for F#.</li>
|
||||
<li><a
|
||||
href="https://github.com/fsprojects/FSharpx.Extras">FSharpx.Extras</a> -
|
||||
FSharpx.Extras is a collection of libraries and tools for use with
|
||||
F#.</li>
|
||||
<li><a href="https://github.com/CaptnCodr/Fli">Fli</a> - Computational
|
||||
expression to run system processes and manage their output.</li>
|
||||
<li><a href="https://github.com/cmeeren/Fling">Fling</a> - Fling
|
||||
significantly reduces boilerplate needed to efficiently save/load
|
||||
complex domain entities to/from multiple tables.</li>
|
||||
<li><a
|
||||
href="https://github.com/demystifyfp/FsToolkit.ErrorHandling">FsToolkit.ErrorHandling</a>
|
||||
- Clear, simple and powerful error handling with railway-oriented
|
||||
programming. Inspired by Chessie.</li>
|
||||
<li><a href="https://github.com/tforkmann/Fumble">Fumble</a> - Thin F#
|
||||
API for Sqlite for easy data access to sqlite database with functional
|
||||
seasoning on top.</li>
|
||||
<li><a
|
||||
href="https://github.com/Zaid-Ajaj/LiteDB.FSharp">LiteDB.FSharp</a> - F#
|
||||
Support for <a href="https://github.com/mbdavid/LiteDB">LiteDB</a>, an
|
||||
embedded single file database for .NET.</li>
|
||||
<li><a
|
||||
href="https://github.com/Zaid-Ajaj/Npgsql.FSharp">Npgsql.FSharp</a> -
|
||||
Thin F# wrapper around <a
|
||||
href="https://github.com/npgsql/npgsql">Npgsql</a>, the PostgreSQL
|
||||
database driver.</li>
|
||||
<li><a href="https://github.com/eiriktsarpalis/TypeShape">TypeShape</a>
|
||||
- Small, extensible F# library for practical generic programming.</li>
|
||||
<li><a href="https://github.com/pimbrouwers/Validus">Validus</a> - A
|
||||
composable validation library for F#, with built-in validators for most
|
||||
primitive types and easily extended through custom validators.</li>
|
||||
<li><a
|
||||
href="https://github.com/veepee-oss/Vp.FSharp.Sql">Vp.FSharp.Sql</a> -
|
||||
Generic F# ADO provider wrapper (SqlServer, PostgreSql, Sqlite).</li>
|
||||
</ul>
|
||||
<h2 id="game-development">Game Development</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/FsUnity">FsUnity</a> - F# libraries,
|
||||
tools, and plugins for the Unity game engine.</li>
|
||||
<li><a href="https://github.com/bcarruthers/garnet">Garnet</a> -
|
||||
Lightweight game composition library for F# with entity-component-system
|
||||
(ECS) and actor-like messaging features.</li>
|
||||
<li><a href="https://www.lkokemohr.de/fsharp_godot.html">Godot</a> -
|
||||
Tutorial how to use F# with Godot.</li>
|
||||
<li><a href="https://github.com/bryanedds/Nu">Nu Game Engine</a> -
|
||||
Cross-platform F# 2D game engine built in the functional style. Uses
|
||||
SDL2 and Farseer Physics.</li>
|
||||
</ul>
|
||||
<h2 id="gui">GUI</h2>
|
||||
<!--lint disable double-link -->
|
||||
<ul>
|
||||
<li><a
|
||||
href="https://github.com/fsprojects/Avalonia.FuncUI">Avalonia.FuncUI</a>
|
||||
- Develop cross-platform MVU GUI Applications using F# and
|
||||
Avalonia.</li>
|
||||
<li><a href="https://github.com/elmish/Elmish.WPF">Elmish.WPF</a> -
|
||||
Elmish (or MVU) approach to WPF programming.</li>
|
||||
<li><a href="https://github.com/kekyo/epoxy">Epoxy</a> - An independent
|
||||
flexible XAML MVVM library for .NET.</li>
|
||||
<li><a href="https://github.com/fabulous-dev/Fabulous">Fabulous</a> - F#
|
||||
functional app development, using declarative dynamic UI.
|
||||
<!--lint enable double-link --></li>
|
||||
</ul>
|
||||
<h2 id="http-clients">HTTP Clients</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/ronaldschlenker/FsHttp">FsHttp</a> - A
|
||||
convenient library for consuming HTTP/REST endpoints via F#.</li>
|
||||
<li><a href="https://github.com/haf/Http.fs">Http.fs</a> - A simple,
|
||||
functional HTTP client library for F#.</li>
|
||||
<li><a href="https://github.com/cognitedata/oryx">Oryx</a> - A high
|
||||
performance .NET cross-platform functional HTTP request handler library
|
||||
for writing HTTP clients and orchestrating web requests.</li>
|
||||
</ul>
|
||||
<h2 id="logging">Logging</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/TheAngryByrd/FsLibLog">FsLibLog</a> - A
|
||||
single file you can copy and paste or add through Paket GitHub
|
||||
dependencies to provide your F# library with a logging abstraction.</li>
|
||||
<li><a href="https://github.com/logary/logary/">Logary</a> - High
|
||||
performance, multi-target logging, metric, tracing and health-check
|
||||
library for mono and .NET.</li>
|
||||
</ul>
|
||||
<h2 id="package-management">Package Management</h2>
|
||||
<ul>
|
||||
<li><a href="https://www.nuget.org/">NuGet</a> - The package manager for
|
||||
the Microsoft development platform including .NET.</li>
|
||||
<li><a href="https://github.com/fsprojects/Paket">Paket</a> - Dependency
|
||||
manager for .NET with support for NuGet packages and Git
|
||||
repositories.</li>
|
||||
</ul>
|
||||
<h2 id="parsing">Parsing</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/stephan-tolksdorf/fparsec">FParsec</a> -
|
||||
The parser combinator library for F#.</li>
|
||||
<li><a href="https://github.com/haf/FsAttoparsec">FsAttoparsec</a> -
|
||||
Port of Bryan O’Sullivan’s attoparsec from Haskell to F#.</li>
|
||||
<li><a href="https://github.com/corsis/XParsec">XParsec</a> -
|
||||
Extensible, type-and-source-polymorphic, non-linear applicative parser
|
||||
combinator library for F# 3.0 and 4.0.</li>
|
||||
</ul>
|
||||
<h2 id="serialization">Serialization</h2>
|
||||
<!--lint disable double-link -->
|
||||
<ul>
|
||||
<li><a href="https://github.com/vsapronov/FSharp.Json">FSharp.Json</a> -
|
||||
Reflection-based serialization library.</li>
|
||||
<li><a
|
||||
href="https://github.com/Tarmil/FSharp.SystemTextJson">FSharp.SystemTextJson</a>
|
||||
- System.Text.Json extensions for F# types.</li>
|
||||
<li><a href="https://github.com/mausch/Fleece">Fleece</a> - JSON mapper
|
||||
for F#. It simplifies mapping from a Json library’s JsonValue onto your
|
||||
types, and mapping from your types onto JsonValue.</li>
|
||||
<li><a href="https://github.com/jet/FsCodec">FsCodec</a> - F#
|
||||
Event-Union Contract Encoding with versioning tolerant converters.</li>
|
||||
<li><a href="https://github.com/mbraceproject/FsPickler">FsPickler</a> -
|
||||
Fast, multi-format messaging serializer for .NET.</li>
|
||||
<li><a href="https://github.com/fjoppe/Legivel">Legivel</a> - F# Yaml
|
||||
1.2 parser.</li>
|
||||
<li><a href="https://thoth-org.github.io/Thoth.Json/">Thoth.Json</a> -
|
||||
JSON encoder/decoder library inspired by Elm.
|
||||
<!--lint enable double-link --></li>
|
||||
</ul>
|
||||
<h2 id="simulation">Simulation</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/mrLSD/riscv-fs">F# RISC-V Instruction
|
||||
Set formal specification</a> - RISC-V CPU formal ISA Specification.
|
||||
RISC-V CPU simulator with ELF files execution.</li>
|
||||
</ul>
|
||||
<h2 id="static-site-generators">Static Site Generators</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/mg0x7BE/skunk-html">SkunkHTML</a> -
|
||||
Markdown blog with GitHub Pages.</li>
|
||||
</ul>
|
||||
<h2 id="testing">Testing</h2>
|
||||
<!--lint disable double-link -->
|
||||
<ul>
|
||||
<li><a href="https://github.com/haf/expecto">Expecto</a> - Smooth
|
||||
testing framework for F# with tests-as-values and parallelism by
|
||||
default.</li>
|
||||
<li><a href="https://github.com/cmeeren/Faqt">Faqt</a> - Fantastic
|
||||
fluent assertions for your F# tests and domain code.</li>
|
||||
<li><a href="https://github.com/fscheck/FsCheck">FsCheck</a> - Random
|
||||
testing for .NET.</li>
|
||||
<li><a href="https://github.com/fsprojects/FsUnit">FsUnit</a> - FsUnit
|
||||
makes unit-testing with F# more enjoyable. It adds a special syntax to
|
||||
your favorite .NET testing framework.</li>
|
||||
<li><a href="https://github.com/PragmaticFlow/NBomber">NBomber</a> -
|
||||
Simple load testing framework for Pull and Push scenarios.</li>
|
||||
<li><a
|
||||
href="https://github.com/persimmon-projects/Persimmon">Persimmon</a> -
|
||||
Unit test framework for F# using computation expressions.</li>
|
||||
<li><a href="https://github.com/SteveGilham/altcover">altcover</a> -
|
||||
Cross-platform coverage gathering and processing tool set for .NET/.NET
|
||||
core and Mono.</li>
|
||||
<li><a href="https://github.com/lefthandedgoat/canopy">canopy</a> - F#
|
||||
web automation and testing framework.</li>
|
||||
<li><a
|
||||
href="https://github.com/hedgehogqa/fsharp-hedgehog">fsharp-hedgehog</a>
|
||||
- Property-based testing system for F#.</li>
|
||||
<li><a href="https://github.com/swensensoftware/unquote">unquote</a> -
|
||||
Write F# unit test assertions as quoted expressions.</li>
|
||||
<li><a href="https://xunit.net/">xUnit.net</a> - Free, open source,
|
||||
community-focused unit testing tool for the .NET Framework.
|
||||
<!--lint enable double-link --></li>
|
||||
</ul>
|
||||
<h2 id="type-providers">Type Providers</h2>
|
||||
<ul>
|
||||
<li><a
|
||||
href="https://github.com/fsprojects/AzureStorageTypeProvider">AzureStorageTypeProvider</a>
|
||||
- F# Azure type provider which can be used to explore Blob, Table and
|
||||
Queue Azure Storage assets and easily apply CRUD operations on
|
||||
them.</li>
|
||||
<li><a
|
||||
href="https://github.com/fsprojects/DynamicsCRMProvider">DynamicsCRMProvider</a>
|
||||
- Type provider for Microsoft Dynamics CRM 2011.</li>
|
||||
<li><a
|
||||
href="https://github.com/easybuild-org/EasyBuild.FileSystemProvider">EasyBuild.FileSystemProvider</a>
|
||||
- Type provider to provide a typed representation of files and
|
||||
directories based on your project structure or a virtual file
|
||||
system.</li>
|
||||
<li><a
|
||||
href="https://github.com/fsprojects/ExcelProvider">ExcelProvider</a> -
|
||||
Excel type provider.</li>
|
||||
<li><a
|
||||
href="https://github.com/fsprojects/FSharp.Configuration">FSharp.Configuration</a>
|
||||
- The project contains type providers for the configuration of .NET
|
||||
projects. Handles AppSettings, ResX, Yaml and Ini files.</li>
|
||||
<li><a
|
||||
href="https://github.com/demetrixbio/FSharp.Data.Npgsql">FSharp.Data.Npgsql</a>
|
||||
- F# type providers library on a top of well-known Npgsql ADO.NET client
|
||||
library.</li>
|
||||
<li><a
|
||||
href="https://github.com/fsprojects/FSharp.Data.SqlClient">FSharp.Data.SqlClient</a>
|
||||
- F# type provider for statically typed access to T-SQL command
|
||||
parameters and result set.</li>
|
||||
<li><a
|
||||
href="https://github.com/mettekou/FSharp.Data.Tdms">FSharp.Data.Tdms</a>
|
||||
- TDMS support for F#.</li>
|
||||
<li><a
|
||||
href="https://github.com/fsprojects/FSharp.Data.Toolbox">FSharp.Data.Toolbox</a>
|
||||
- Library for various data access APIs based on FSharp.Data. The library
|
||||
currently includes the Twitter type provider for access to Twitter users
|
||||
and feeds, and SAS type provider to read SAS dataset files.</li>
|
||||
<li><a
|
||||
href="https://github.com/fsprojects/FSharp.Data.TypeProviders">FSharp.Data.TypeProviders</a>
|
||||
- Library that contains type providers for <code>.edmx</code> files,
|
||||
<code>.dbml</code> files, WSDL services, OData services, and SQL
|
||||
databases.</li>
|
||||
<li><a href="https://github.com/fsharp/FSharp.Data">FSharp.Data</a> -
|
||||
Data science library that contains type providers for CSV, HTML, JSON,
|
||||
XML, and WorldBank data.</li>
|
||||
<li><a
|
||||
href="https://github.com/fsprojects/FSharp.Management">FSharp.Management</a>
|
||||
- The project contains various type providers for the management of the
|
||||
machine. Handles file system, registry, Windows Management
|
||||
Instrumentation, PowerShell and SystemTimeZones.</li>
|
||||
<li><a
|
||||
href="https://github.com/fsprojects/FSharp.Text.RegexProvider">FSharp.Text.RegexProvider</a>
|
||||
- Type provider for regular expressions.</li>
|
||||
<li><a href="https://github.com/cmeeren/Facil">Facil</a> - Facil
|
||||
generates F# data access source code from SQL queries and stored
|
||||
procedures.</li>
|
||||
<li><a href="https://github.com/fsprojects/FsXaml">FsXaml</a> - F# Tools
|
||||
for working with XAML Projects.</li>
|
||||
<li><a href="https://github.com/bleis-tift/FsYaml">FsYaml</a> - Typed
|
||||
Yaml library for F#.</li>
|
||||
<li><a
|
||||
href="https://github.com/fsprojects/GraphProvider">GraphProvider</a> -
|
||||
<code>.dgml</code> state machine type provider.</li>
|
||||
<li><a
|
||||
href="https://github.com/fsprojects/matprovider">MatDataProvider</a> -
|
||||
Erased type provider for <code>.mat</code> files (binary MATLAB format
|
||||
files).</li>
|
||||
<li><a href="https://github.com/BlueMountainCapital/FSharpRProvider">R
|
||||
Type Provider</a> - Type provider to interop with R.</li>
|
||||
<li><a href="https://github.com/rspeele/Rezoom.SQL">Rezoom.SQL</a> -
|
||||
Statically typed SQL for F#.</li>
|
||||
<li><a href="https://github.com/fsprojects/S3Provider">S3Provider</a> -
|
||||
Experimental type provider for Amazon S3.</li>
|
||||
<li><a href="https://github.com/fsprojects/SQLProvider">SQLProvider</a>
|
||||
- General F# SQL database erasing type provider, supporting LINQ
|
||||
queries, schema exploration, individuals, CRUD operations and much more
|
||||
besides.</li>
|
||||
<li><a
|
||||
href="https://github.com/fsprojects/SwaggerProvider">SwaggerProvider</a>
|
||||
- Generative type provider for Swagger.</li>
|
||||
</ul>
|
||||
<h3 id="creating-type-providers">Creating Type Providers</h3>
|
||||
<ul>
|
||||
<li><a
|
||||
href="https://github.com/fsprojects/FSharp.TypeProviders.StarterPack">FSharp.TypeProviders.StarterPack</a>
|
||||
- The ProvidedTypes SDK for creating F# type providers.</li>
|
||||
</ul>
|
||||
<h2 id="visualization">Visualization</h2>
|
||||
<ul>
|
||||
<li><a
|
||||
href="https://github.com/fslaborg/FSharp.Charting">FSharp.Charting</a> -
|
||||
Charting library suitable for interactive F# scripting.</li>
|
||||
<li><a href="https://github.com/pablofrommars/GGNet">GG.Net</a> -
|
||||
Visualization library for data scientists.</li>
|
||||
<li><a href="https://github.com/plotly/Plotly.NET">Plotly.NET</a> - A
|
||||
Plotly-based general purpose plotting library for F#.</li>
|
||||
<li><a href="https://github.com/ChrisNikkel/SharpVG">SharpVG</a> -
|
||||
Create SVG vector graphics in F#.</li>
|
||||
<li><a href="https://github.com/fslaborg/XPlot">XPlot</a> - A plotting
|
||||
library for the F# programming language.</li>
|
||||
</ul>
|
||||
<h2 id="web-frameworks">Web Frameworks</h2>
|
||||
<!--lint disable double-link -->
|
||||
<ul>
|
||||
<li><a href="https://github.com/fsbolero/Bolero/">Bolero</a> - F# in
|
||||
WebAssembly, develop SPAs with the full power of F# and .NET
|
||||
Blazor.</li>
|
||||
<li><a href="https://github.com/pimbrouwers/Falco/">Falco</a> - A
|
||||
functional-first toolkit for building brilliant ASP.NET Core
|
||||
applications using F#.</li>
|
||||
<li><a href="https://github.com/cmeeren/Felicity">Felicity</a> -
|
||||
Boilerplate-free, idiomatic JSON:API for your beautiful, idiomatic F#
|
||||
domain model.</li>
|
||||
<li><a href="https://github.com/Zaid-Ajaj/Feliz">Feliz</a> - A fresh
|
||||
retake of the React API in Fable and a collection of high-quality
|
||||
components to build React applications in F#.</li>
|
||||
<li><a href="https://github.com/lefthandedgoat/genit">Genit</a> -
|
||||
Cross-platform website generator and server using F#, Suave and
|
||||
PostgreSQL or MS SQL Server.</li>
|
||||
<li><a href="https://github.com/giraffe-fsharp/Giraffe">Giraffe</a> -
|
||||
Native functional ASP.NET Core web framework for F# developers.</li>
|
||||
<li><a href="https://github.com/Lanayx/Oxpecker">Oxpecker</a> - ASP.NET
|
||||
Core based F# framework + supporting tools (ViewEngine, Htmx,
|
||||
OpenApi).</li>
|
||||
<li><a href="https://github.com/SaturnFramework/Saturn">Saturn</a> -
|
||||
Opinionated, web development framework for F# which implements the
|
||||
server-side, functional MVC pattern.</li>
|
||||
<li><a href="https://github.com/SuaveIO/suave">Suave</a> - Suave is a
|
||||
simple web development F# library providing a lightweight web server and
|
||||
a set of combinators to manipulate route flow and task composition.</li>
|
||||
<li><a
|
||||
href="https://github.com/intellifactory/websharper">WebSharper</a> -
|
||||
F#-based web programming platform including a compiler from F# code to
|
||||
JavaScript. <!--lint enable double-link --></li>
|
||||
</ul>
|
||||
<h2 id="net-core-templates">.NET Core Templates</h2>
|
||||
<!--lint disable awesome-list-item-->
|
||||
<ul>
|
||||
<li><a
|
||||
href="https://github.com/MNie/FSharpNetCoreWebApiTemplate">ASP.NET Core
|
||||
WebAPI F# Template</a> -
|
||||
<code>dotnet new -i WebAPI.FSharp.Template::*</code></li>
|
||||
<li><a href="https://github.com/MNie/Expecto.Template">Expecto
|
||||
Template</a> - <code>dotnet new -i Expecto.Template::*</code></li>
|
||||
<li><a href="http://fable.io">Fable, F# |> Babel</a> -
|
||||
<code>dotnet new -i Fable.Template::*</code></li>
|
||||
<li><a
|
||||
href="https://github.com/fable-compiler/fable-elmish">Fable-elmish</a> -
|
||||
<code>dotnet new -i Fable.Template.Elmish.React::*</code></li>
|
||||
<li><a href="https://github.com/giraffe-fsharp/giraffe-template">Giraffe
|
||||
Template</a> - <code>dotnet new -i "giraffe-template::*"</code></li>
|
||||
<li><a
|
||||
href="https://github.com/TheAngryByrd/MiniScaffold">MiniScaffold</a> -
|
||||
F# Template for creating and publishing libraries targeting .NET Full
|
||||
(net45) and Core (netstandard1.6),
|
||||
<code>dotnet new -i MiniScaffold::*</code></li>
|
||||
<li><a href="https://github.com/MNie/NancyFxCore">NancyFx Template</a> -
|
||||
<code>dotnet new -i NancyFx.Core.Template::*</code></li>
|
||||
<li><a href="https://github.com/SAFE-Stack/SAFE-template">SAFE Stack
|
||||
Template</a> - <code>dotnet new -i SAFE.Template::*</code>
|
||||
<!--lint enable awesome-list-item--></li>
|
||||
</ul>
|
||||
<h2 id="resources">Resources</h2>
|
||||
<h3 id="blogs">Blogs</h3>
|
||||
<ul>
|
||||
<li><a href="https://devblogs.microsoft.com/dotnet/tag/f/">.NET Blog (F#
|
||||
tag)</a> - News and discussions about F# from the .NET team.</li>
|
||||
<li><a href="https://codesuji.com">Codesuji</a> - A community member
|
||||
blog, focusing on functional aspects on F#.</li>
|
||||
<li><a href="https://kcieslak.io/">Krzysztof Cieslak</a> - A blog of the
|
||||
Ionide maintainer.</li>
|
||||
<li><a href="https://blog.ploeh.dk/">Mark Seemann</a> - A blog
|
||||
discussing various aspects of software design.</li>
|
||||
<li><a href="https://sergeytihon.com/">Sergey Tihon (F# Weekly)</a> -
|
||||
Weekly newsletter collected across the ecosystem.</li>
|
||||
<li><a href="http://tomasp.net/blog/">Tomas Petricek</a> - A well-known
|
||||
community member working on a diverse set of topics.</li>
|
||||
</ul>
|
||||
<h3 id="books">Books</h3>
|
||||
<ul>
|
||||
<li><a
|
||||
href="https://pragprog.com/titles/swdddf/domain-modeling-made-functional/">Domain
|
||||
Modeling Made Functional by Scott Wlaschin</a> - Tackle software
|
||||
complexity with domain-driven design and F#.</li>
|
||||
<li><a href="https://www.manning.com/books/f-sharp-in-action">F# in
|
||||
Action by Isaac Abraham</a> - A practical guide in software development
|
||||
in F#.</li>
|
||||
</ul>
|
||||
<h3 id="cheatsheets">Cheatsheets</h3>
|
||||
<ul>
|
||||
<li><a href="https://fssnip.net/">F# Snips</a> - Share your snippets of
|
||||
F# code.</li>
|
||||
<li><a href="https://fsprojects.github.io/fsharp-cheatsheet/">F#
|
||||
cheatsheet</a> - Quick reference for the main language features.</li>
|
||||
<li><a
|
||||
href="https://docs.microsoft.com/en-us/dotnet/articles/fsharp/tour">F#
|
||||
tour</a> - Official language tour from Microsoft.</li>
|
||||
<li><a
|
||||
href="https://github.com/knocte/2fsharp/blob/master/csharp2fsharp.md">Guide
|
||||
for C# devs to learn F#</a> - A 30-minute F# tutorial for C#
|
||||
programmers, with back-to-back code snippets.</li>
|
||||
<li><a
|
||||
href="https://github.com/knocte/2fsharp/blob/master/python2fsharp.md">Guide
|
||||
for Python devs to learn F#</a> - A 30-minute F# tutorial for Python
|
||||
programmers, with back-to-back code snippets.</li>
|
||||
<li><a href="https://github.com/Dhghomon/rust-fsharp">Guide for Rust
|
||||
devs to learn F#</a> - Informal manual for users of Rust and F# to read
|
||||
through to learn about the other language.</li>
|
||||
<li><a href="https://learnxinyminutes.com/docs/fsharp">Learn F# in Y
|
||||
minutes</a> - A guide recommended to quickly start programming in
|
||||
F#.</li>
|
||||
</ul>
|
||||
<h3 id="community">Community</h3>
|
||||
<ul>
|
||||
<li><a href="https://amplifyingfsharp.io">Amplifying F#</a></li>
|
||||
<li><a href="https://bsky.app/hashtag/fsharp">F# on BlueSky</a></li>
|
||||
<li><a href="https://discord.com/invite/fsharp-196693847965696000">F# on
|
||||
Discord</a></li>
|
||||
<li><a href="https://forums.fsharp.org/">F# on Discourse</a></li>
|
||||
<li><a href="https://www.reddit.com/r/fsharp/">F# on Reddit</a></li>
|
||||
<li><a href="https://t.me/fsharp_chat">F# on Telegram</a></li>
|
||||
<li><a href="https://x.com/hashtag/fsharp">F# on Twitter</a></li>
|
||||
</ul>
|
||||
<h3 id="other-lists">Other Lists</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/quozd/awesome-dotnet">Awesome .NET!</a>
|
||||
- Collection of awesome .NET libraries, tools, frameworks and
|
||||
software.</li>
|
||||
<li><a href="http://fsharp.org/community/projects/">F# Community
|
||||
Projects</a> - Everything produced by the F# community.</li>
|
||||
<li><a href="https://www.fsharpest.xyz">FSharpest</a> - A directory to
|
||||
discover F# tools, libraries and resources.</li>
|
||||
<li><a href="https://fable.io/resources.html">Fable Resources</a> - A
|
||||
curated list of useful Fable-related tutorials, libraries and
|
||||
software.</li>
|
||||
</ul>
|
||||
<h3 id="websites">Websites</h3>
|
||||
<ul>
|
||||
<li><a href="http://c4fsharp.net/">Community for F#</a> - Links to dojos
|
||||
and recordings of community presentations.</li>
|
||||
<li><a href="https://www.decompiler.com/">Decompiler.com</a> - Online
|
||||
C#/VB/F# decompiler.</li>
|
||||
<li><a href="https://dotnetfiddle.net/">DotNetFiddle</a> - Online
|
||||
REPL.</li>
|
||||
<li><a href="http://fsharp.org/">F# Software Foundation</a> - Main
|
||||
website.</li>
|
||||
<li><a href="https://fsharpforfunandprofit.com/">F# for Fun and
|
||||
Profit</a> - Reference tutorials.</li>
|
||||
<li><a href="https://sharplab.io/">SharpLab</a> - C#/VB/F# compiler
|
||||
playground.</li>
|
||||
<li><a href="https://try.fsharp.org/">Try F#</a> - Online tutorials,
|
||||
currently without execution of code due to Silverlight dependency.</li>
|
||||
<li><a href="https://jindraivanek.gitlab.io/cs2fs-online">cs2fs</a> -
|
||||
Transform C# code to F# code.</li>
|
||||
<li><a
|
||||
href="https://fsprojects.github.io/fantomas-tools">fantomas-tools</a> -
|
||||
A set of Fantomas related tools like AST viewer and online bug
|
||||
reporter.</li>
|
||||
</ul>
|
||||
<h3 id="videos">Videos</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.youtube.com/@amplifyingfsharp">Amplifying F#
|
||||
YouTube Channel</a></li>
|
||||
<li><a href="https://www.youtube.com/@fonline6018">F# Online YouTube
|
||||
Channel</a></li>
|
||||
<li><a
|
||||
href="http://usergroup.tv/videos/category/group/austin-f-meetup">Austin
|
||||
F# Meetup Group Recorded Presentations</a></li>
|
||||
<li><a
|
||||
href="https://www.youtube.com/watch?v=EIBRoNEpg6c&list=PLqWncHdBPoD4O1sr2Q3W9gAuJ30s09U2r">F#
|
||||
Chats on performance</a></li>
|
||||
<li><a
|
||||
href="https://www.youtube.com/watch?v=KMR2y1vcO-s&list=PLqWncHdBPoD4-d_VSZ0MB0IBKQY0rwYLd">Fast
|
||||
Dictionary in F#</a></li>
|
||||
<li><a
|
||||
href="https://www.youtube.com/watch?v=1ioGr701c5Q&list=PLqWncHdBPoD4YEWoXQlRj1tiTc96HZxH8">Intro
|
||||
to F#</a></li>
|
||||
<li><a
|
||||
href="https://www.youtube.com/playlist?list=PLqWncHdBPoD5hEK31CcfmTHP-7icw2Xd0">Topological
|
||||
Sort</a></li>
|
||||
</ul>
|
||||
<h3 id="courses">Courses</h3>
|
||||
<ul>
|
||||
<li><a href="https://write-yourself-a-scheme.pangwa.com/">Write yourself
|
||||
a scheme in 48 hours using F#</a></li>
|
||||
</ul>
|
||||
<p><a href="https://github.com/fsprojects/awesome-fsharp">fsharp.md
|
||||
Github</a></p>
|
||||
Reference in New Issue
Block a user