Skip to content

mikeroyal/F-Sharp-Guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 

Repository files navigation


F# Guide

A guide covering F# including the applications and tools that will make you a better and more efficient F# developer.

Note: You can easily convert this markdown file to a PDF in VSCode using this handy extension Markdown PDF.


F# Learning Resources

F# is a mature, open source, cross-platform, functional-first programming language. It empowers users and organizations to tackle complex computing problems with simple, maintainable and robust code.

What is F#

F#, the Functional programming for .NET

Cloud Programming with F#

F# style guide

F# Programming Wikibook

F# Developer Network (FSDN)

Learning F# from The F# Software Foundation

F# Programming groups | Meetup

F# Tools, Libraries, and Frameworks

Python.NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET developers. It allows Python code to interact with the CLR, and may also be used to embed Python into a .NET application.

Fable is an F# to JavaScript compiler powered by Babel, designed to make F# a first-class citizen of the JavaScript ecosystem.

.NET for Apache Spark provides high performance APIs for using Apache Spark from C# and F#. With these .NET APIs, you can access the most popular Dataframe and SparkSQL aspects of Apache Spark, for working with structured data, and Spark Structured Streaming, for working with streaming data. .NET for Apache Spark runs on Windows, Linux, and macOS using .NET Core, or Windows using .NET Framework. It also runs on all major cloud providers including Azure HDInsight Spark, Amazon EMR Spark, AWS & Azure Databricks.

Giraffe is a functional ASP.NET Core micro web framework for building rich web applications.

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. Suave supports Websocket, HTTPS, multiple TCP/IP bindings, Basic Access Authentication, Keep-Alive.

FsCheck is a tool for testing .NET programs automatically. The programmer provides a specification of the program, in the form of properties which functions, methods or objects should satisfy, and FsCheck then tests that the properties hold in a large number of randomly generated cases.

Elmish implements core abstractions for F# apps that can be used to build applications following the “model view update” style of architecture made famous by Elm. The library however does not model any "view" and is intended for use in conjuction with a DOM/renderer, like React/ReactNative or VirtualDOM.

Saturn is a web development framework written in F# which implements the server-side MVC pattern. Many of its components and concepts will seem familiar to anyone with experience in other web frameworks like Ruby on Rails or Python’s Django.

Pulumi is Infrastructure as Code SDK is the easiest way to create and deploy cloud software that use containers, serverless functions, hosted services, and infrastructure, on any cloud. Simply write code in your favorite language and Pulumi will automatically provisions and manages your AWS, Azure, Google Cloud Platform, and/or Kubernetes resources, using an infrastructure-as-code approach.

FsPickler is a serialization library that facilitates the distribution of .NET objects. The implementation focuses on performance and completeness in supported types, including F# types. It supports multiple, pluggable serialization formats including Binary, Xml, JSON and BSON. The library is based on the functional programming concept of pickler combinators which has been adapted to accommodate the object oriented nature of the .NET framework.

Paket is a dependency manager for .NET with support for NuGet packages and git repositories.

Fantomas is a F# source code formatter.

SQLProvider is a general F# SQL database erasing type provider, supporting LINQ queries, schema exploration, individuals, and CRUD operations.

FsUnit makes unit-testing with F# more enjoyable. It adds a special syntax to your favorite .NET testing framework.

Contribute

  • If would you like to contribute to this guide simply make a Pull Request.

License

Distributed under the Creative Commons Attribution 4.0 International (CC BY 4.0) Public License.

Releases

No releases published

Packages

No packages published

Languages