├── .devcontainer └── devcontainer.json ├── .editorconfig ├── .github ├── dependabot.yml └── workflows │ ├── jekyll.yml │ └── markdown-lint.yml ├── .gitignore ├── .markdownlint-cli2.jsonc ├── .vscode └── settings.json ├── 404.html ├── CNAME ├── Gemfile ├── Gemfile.lock ├── LICENSE ├── README.md ├── _books ├── F#_high_performance_2017.md ├── beginning_f#_4_2016.md ├── building_f#_applications_video_2017.md ├── domain_modeling_made_functional_2018.md ├── essential_f#.md ├── export_f#_4_2015.md ├── f#_4_design_patterns_2016 .md ├── f#_applied_2016.md ├── f#_applied_ii_2018.md ├── f#_deep_dives_2014.md ├── f#_for_machine_learning_essentials_2016.md ├── f#_for_quantitative_finance_2013.md ├── f#_for_scientists_2008.md ├── f#_ile_fonksiyonel_programlama_2021.md ├── f#_in_action_2024.md ├── functional_programming_using_f#_2013.md ├── learning_functional_programming_with_f#_2017.md ├── machine_learning_projects_for_dotnet_developers_2015.md ├── mastering_f#_2016.md ├── multi-paradign_programming_using_f#_and_dotnet.md ├── programming_language_concepts_2017.md ├── real_world_functional_programming_2010.md ├── stylish_f#_6_2022.md └── the_book_of_f#_2014.md ├── _config.yml ├── _includes ├── navbar.html └── usemenu.html ├── _layouts ├── default.html ├── main.html └── page.html ├── _snippets ├── async_expressions.md ├── computation_expressions.md ├── domain_modelling.md ├── fable.md ├── helloworld.md ├── oop.md ├── sequence_expressions.md ├── typeproviders.md └── unitsOfMeasure.md ├── _testimonials ├── 15below-1.md ├── JamieDixon.md ├── advertisement-rating-and-ranking-at-microsoft.md ├── alex-hardwicke.md ├── andrew-phillips-1.md ├── atalasoft.md ├── aviva-flying-frog-1.md ├── bayard-rock-1.md ├── bohdan-szymanik-1.md ├── boston-based-company.md ├── byron-cook-1.md ├── calitime.md ├── can-erten.md ├── cleartax.md ├── cme-1.md ├── compositional-it.md ├── credit-suisse-abstract.md ├── dario.md ├── darren-platt-1.md ├── david-walker-1.md ├── deyan-petrov.md ├── dmitry-soshnikov-1.md ├── doctors-lab.md ├── dsyme-ad-predict-1.md ├── dylan-hutchinson-intern-1.md ├── early-warning-1.md ├── emea.md ├── financial-services-1.md ├── giuseppe-maggiore.md ├── goswin-1.md ├── grange-insurance-1.md ├── green-eagle-solutions.md ├── handelsbanken-1.md ├── hans-rischel.md ├── horspool-1.md ├── insurello.md ├── james-moore.md ├── jared-parsons-1.md ├── jon-canning.md ├── jorge-fioranelli.md ├── jozef-rudy.md ├── kaggle-1.md ├── lemball-1.md ├── london-based-company.md ├── lula.md ├── mangel-maxime.md ├── maria-gorinova.md ├── mario-pereira.md ├── mauricio-scheffer.md ├── miccrosoft-engineering-1.md ├── michael-hansen.md ├── microsoft-narwhal-1.md ├── microsoft-quantum-1.md ├── namigop.md ├── oconnors-1.md ├── path-of-go.md ├── peter-sestoft-1.md ├── prolucid.md ├── reminder-hero.md ├── robert-boissy.md ├── simao-sousa-1.md ├── simard-1.md ├── simon-cousins-1.md ├── simon-cousins-2.md ├── sledilnik-1.md ├── stephen-kennedy.md ├── susan-eisenbach-1.md ├── synctoday-1.md ├── tabbles-1.md ├── uni-pisa-1.md ├── vitor-pereira.md ├── waisal-1.md └── yan-cui.md ├── apple-touch-icon-180x180.png ├── archive ├── presentations │ ├── dsyme-oct-2004-v4.pdf │ └── dsyme-serious-sep-04-v3.pdf └── videos │ ├── 1.md │ ├── 10.md │ ├── 11.md │ ├── 12.md │ ├── 13.md │ ├── 14.md │ ├── 2.md │ ├── 3.md │ ├── 4.md │ ├── 5.md │ ├── 6.md │ ├── 7.md │ ├── 8.md │ ├── 9.md │ └── list.json ├── community └── projects │ └── index.md ├── css ├── animate.css ├── fontawesome6 │ ├── css │ │ ├── all.css │ │ ├── all.min.css │ │ ├── brands.css │ │ ├── brands.min.css │ │ ├── fontawesome.css │ │ ├── fontawesome.min.css │ │ ├── regular.css │ │ ├── regular.min.css │ │ ├── solid.css │ │ ├── solid.min.css │ │ ├── svg-with-js.css │ │ ├── svg-with-js.min.css │ │ ├── v4-font-face.css │ │ ├── v4-font-face.min.css │ │ ├── v4-shims.css │ │ ├── v4-shims.min.css │ │ ├── v5-font-face.css │ │ └── v5-font-face.min.css │ └── webfonts │ │ ├── fa-brands-400.ttf │ │ ├── fa-brands-400.woff2 │ │ ├── fa-regular-400.ttf │ │ ├── fa-regular-400.woff2 │ │ ├── fa-solid-900.ttf │ │ ├── fa-solid-900.woff2 │ │ ├── fa-v4compatibility.ttf │ │ └── fa-v4compatibility.woff2 ├── main.css ├── monokai.css ├── site.css └── vs.css ├── docs └── index.md ├── favicon-160x160.png ├── favicon-16x16.png ├── favicon-192x192.png ├── favicon-32x32.png ├── favicon-96x96.png ├── favicon.ico ├── guides ├── cloud │ └── index.md ├── data-access │ └── index.md ├── data-science │ └── index.md ├── engineering │ └── issues.md ├── enterprise │ └── index.md ├── mobile-apps │ └── index.md ├── slack │ └── index.md └── web │ └── index.md ├── history ├── hopl-draft-1.pdf ├── hopl-draft-2.docx ├── hopl-draft-3.docx ├── hopl-draft-3.pdf ├── hopl-draft-3b.docx ├── hopl-draft-3b.pdf ├── hopl-final │ ├── ACM-HOPL-Reference-Format.bst │ ├── ACM-Reference-Format.bst │ ├── acmNArefs.sty │ ├── acmart.bib │ ├── acmart.cls │ ├── acmart.dtx │ ├── acmart.ins │ ├── acmshepherd.sty │ ├── bib.bib │ ├── directx.png │ ├── directx2.jpg │ ├── fig1.jpg │ ├── fig2a.jpg │ ├── fig2b.jpg │ ├── fig3.jpg │ ├── fig4.jpg │ ├── fsharp-logo.png │ ├── hindley-milner.PNG │ ├── hopl-fsharp.pdf │ ├── hopl-fsharp.tex │ ├── msft.jpg │ ├── sql-provider.png │ ├── team-2012.jpg │ ├── team-2014.png │ └── tp-freebase.png └── index.md ├── humans.txt ├── images └── thumbs │ ├── AkkaDotNET.png │ ├── AntaniXml.png │ ├── BioFSharp_small.png │ ├── Brahma.FSharp.jpg │ ├── CenterCLR.RelaxVersioner.png │ ├── DAXIFsharp.png │ ├── Deedle.png │ ├── DiffSharpLogoSmall.png │ ├── ExcelFinancialFunctions.png │ ├── FAKE.png │ ├── FSCL.jpeg │ ├── FSDN.png │ ├── FSharp.Azure.png │ ├── FSharp.Charting.png │ ├── FSharp.Compiler.Service.png │ ├── FSharp.Configuration.png │ ├── FSharp.Control.FusionTasks.png │ ├── FSharp.Control.Reactive.png │ ├── FSharp.Data.SqlClient.png │ ├── FSharp.Data.Toolbox.png │ ├── FSharp.Data.png │ ├── FSharp.Desktop.UI.png │ ├── FSharp.Formatting.png │ ├── FSharp.Management.png │ ├── FSharp.Quotations.Evaluator.png │ ├── FSharpLint.png │ ├── FSharpRProvider.png │ ├── FSharpTest.png │ ├── FSharpVSPowerTools.png │ ├── FSharpx.Collections.png │ ├── FSharpx.png │ ├── Farkle.png │ ├── FlexSearch.png │ ├── Foogle.Charts.png │ ├── Foq.png │ ├── FsAlgLogoSmall.png │ ├── FsEye.png │ ├── FsLexYacc.png │ ├── FsReveal.png │ ├── Fspec.png │ ├── FuncUI.png │ ├── HiveProvider.png │ ├── HypeLogo32.png │ ├── IHeartFsharp160.png │ ├── MathNet.png │ ├── NET_Core_Logo.svg │ ├── PSeq.png │ ├── Paket.png │ ├── ProjectScaffold.png │ ├── Rider_icon.svg │ ├── S3Provider.png │ ├── Tamarin.png │ ├── Unquote.png │ ├── VSCode.png │ ├── Visual_Studio_Code_1.35_icon.svg │ ├── Visual_Studio_Icon_2022.svg │ ├── WebSharper.png │ ├── XPlot.png │ ├── YaccConstructor.jpg │ ├── aspnet.png │ ├── canopy.jpg │ ├── cheetsheet.png │ ├── dotnet.png │ ├── dynamodb_sql.png │ ├── fable.png │ ├── fantomas.png │ ├── filbert.png │ ├── fracture.png │ ├── fsbolero.png │ ├── fsharp.web.png │ ├── fsharpbinding.png │ ├── fszmq_logo.png │ ├── fuzzy.png │ ├── giraffe.png │ ├── github-mark-white.svg │ ├── github-mark.svg │ ├── glot-io.jpg │ ├── ionide.png │ ├── ionide_logo.png │ ├── jupyter.png │ ├── nessos.png │ ├── quantalea-small.png │ ├── quantalea.png │ ├── rider.png │ ├── safestack.png │ ├── saturn.png │ ├── servicestack.png │ ├── sqlfun-small.png │ ├── suave.png │ ├── swf_ext.png │ ├── tryfsharp.jpg │ ├── vstudio.png │ └── xamarin-studio.png ├── img ├── Facebook.png ├── Twitter.png ├── arrow.png ├── big │ ├── ffconsultancy.gif │ ├── ffconsultancy.png │ ├── fpish.png │ ├── fsharp.png │ ├── goswin-waggner.png │ ├── intelli.gif │ ├── kaggle.png │ ├── mbrace.png │ ├── microsoft.png │ ├── quantalea.png │ ├── servicestack.png │ ├── skillsmatter.png │ ├── statfactory.jpg │ ├── vfsharp.png │ ├── xamarin-studio.png │ └── xamarin.png ├── glyphicons-halflings-white.png ├── glyphicons-halflings.png ├── left-gradient.png ├── logo.png ├── logo │ ├── FsXaml.png │ ├── fsharp.svg │ ├── fsharp100mcdark.png │ ├── fsharp100mclight.png │ ├── fsharp128.png │ ├── fsharp2048.png │ ├── fsharp256.png │ └── fsharp512.png ├── right-gradient.png ├── rss.gif ├── rss.png └── sup │ ├── cumps_consulting.png │ ├── drdispatch.png │ ├── fsharpworks.png │ ├── genetec.png │ ├── jet.png │ ├── prolucid.png │ └── tachyus.png ├── index.html ├── js ├── highlight.pack.js ├── home.js ├── main.js ├── plugins.js ├── vendor │ ├── bootstrap.js │ ├── bootstrap.min.js │ ├── jquery-1.8.2.min.js │ ├── jquery.min.js │ └── modernizr-2.6.1.min.js └── wow.min.js ├── learn ├── books.html ├── books.yaml ├── files │ ├── book_covers │ │ ├── beginning_fsharp_4.webp │ │ ├── book_of_fsharp.png │ │ ├── building_fsharp_applications.avif │ │ ├── domain_modeling_made_functional.webp │ │ ├── essential_fsharp.jpeg │ │ ├── expert_fsharp_4.webp │ │ ├── fsharp_4_design_patterns.webp │ │ ├── fsharp_applied.webp │ │ ├── fsharp_applied_ii.webp │ │ ├── fsharp_deep_dives.jpg │ │ ├── fsharp_for_machine_learning_essentials.jpg │ │ ├── fsharp_for_quantitative_finance.webp │ │ ├── fsharp_for_scientists.jpg │ │ ├── fsharp_high_performance.webp │ │ ├── fsharp_ile_fonksiyonel_programlama_kitabi_on_kapak.webp │ │ ├── fsharp_in_action.png │ │ ├── functional_programming_using_fsharp.jpg │ │ ├── learning_functional_programming_with_fsharp.avif │ │ ├── machine_learning_projects_for_dotnet_developers.jpg │ │ ├── mastering_fsharp.avif │ │ ├── multi-paradigm_programming_using_fsharp.jpg │ │ ├── programming_language_concepts.webp │ │ ├── real_world_functional_programming.jpg │ │ └── stylish_fsharp_6.png │ └── tryfsharp.jpg └── index.md ├── package-lock.json ├── package.json ├── postcss.config.js ├── robots.txt ├── specs ├── archive │ ├── FSharp-2.0-EarlyLibrarySpec-v34.docx │ ├── FSharp-2.0-MiscTechnicalNotes-v3.docx │ ├── FSharp-3.0-QueriesAndData-v4.docx │ └── FSharp-3.0-TypeProviders-v5.docx ├── component-design-guidelines │ ├── fsharp-design-guidelines-latest.docx │ └── fsharp-design-guidelines-v14.pdf ├── index.md └── language-spec │ ├── 2.0 │ └── FSharpSpec-2.0-April-2012.pdf │ ├── 3.0 │ ├── FSharpSpec-3.0-final.docx │ └── FSharpSpec-3.0-final.pdf │ ├── 3.1 │ ├── FSharpSpec-3.1-final.docx │ └── FSharpSpec-3.1-final.pdf │ ├── 4.0 │ ├── FSharpSpec-4.0-final.docx │ ├── FSharpSpec-4.0-final.pdf │ ├── FSharpSpec-4.0-latest.docx │ └── FSharpSpec-4.0-latest.pdf │ ├── 4.1 │ ├── FSharpSpec-4.1-latest.docx │ └── FSharpSpec-4.1-latest.pdf │ └── index.md ├── tailwind.config.js ├── teaching ├── files │ ├── fpbook.jpg │ └── sestoft.png ├── index.md └── research.md ├── testimonials └── index.html └── use ├── browser └── index.md ├── desktop-apps └── index.md ├── linux └── index.md ├── mac └── index.md ├── mobile-apps └── index.md ├── notebooks └── index.md ├── web-apps └── index.md └── windows └── index.md /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | // For format details, see https://aka.ms/devcontainer.json. For config options, see the 2 | // README at: https://github.com/devcontainers/templates/tree/main/src/jekyll 3 | { 4 | "name": "Jekyll", 5 | // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile 6 | "image": "mcr.microsoft.com/devcontainers/jekyll:2-bullseye", 7 | 8 | // Features to add to the dev container. More info: https://containers.dev/features. 9 | "features": { 10 | "ghcr.io/devcontainers/features/node:1": {} 11 | }, 12 | "customizations": { 13 | "vscode": { 14 | "extensions": [ 15 | "bradlc.vscode-tailwindcss" 16 | ] 17 | } 18 | }, 19 | 20 | // Use 'forwardPorts' to make a list of ports inside the container available locally. 21 | // "forwardPorts": [], 22 | 23 | // Uncomment the next line to run commands after the container is created. 24 | // "postCreateCommand": "jekyll --version" 25 | 26 | // Configure tool-specific properties. 27 | // "customizations": {}, 28 | 29 | // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. 30 | // "remoteUser": "root" 31 | } 32 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | end_of_line = lf 3 | insert_final_newline = true 4 | trim_trailing_whitespace = true 5 | 6 | # always use spaces for indentation 7 | indent_style = space 8 | indent_size = 4 9 | 10 | [*.html] 11 | indent_size = 2 12 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for more information: 4 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | # https://containers.dev/guide/dependabot 6 | 7 | version: 2 8 | updates: 9 | - package-ecosystem: "devcontainers" 10 | directory: "/" 11 | schedule: 12 | interval: weekly 13 | -------------------------------------------------------------------------------- /.github/workflows/markdown-lint.yml: -------------------------------------------------------------------------------- 1 | name: Markdown Lint 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | lint: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: actions/checkout@v4 10 | with: 11 | fetch-depth: 0 12 | - uses: tj-actions/changed-files@v45 13 | id: changed-files 14 | with: 15 | files: '**/*.md' 16 | separator: "," 17 | - uses: DavidAnson/markdownlint-cli2-action@v19 18 | if: steps.changed-files.outputs.any_changed == 'true' 19 | with: 20 | globs: ${{ steps.changed-files.outputs.all_changed_files }} 21 | separator: "," 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .paket/paket.exe 2 | packages/ 3 | node_modules/ 4 | paket-files/ 5 | _site/ 6 | *~ 7 | .DS_Store 8 | run-jekyll.* 9 | .ionide 10 | js/ 11 | .idea/projectSettingsUpdater.xml 12 | -------------------------------------------------------------------------------- /.markdownlint-cli2.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | // Enable all rules by default 4 | "default": true, 5 | // Line length: increase default from 80 6 | "MD013": { 7 | "line_length": 100, 8 | "code_blocks": false, 9 | "tables": false 10 | }, 11 | // Allow duplicate headers in different nested sections 12 | "MD024": { 13 | "allow_different_nesting": true 14 | }, 15 | // Allow inline HTML 16 | "MD033": false, 17 | // First line in a file doesn't need to be a top-level header 18 | "MD041": false 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "tailwindCSS.experimental.configFile": "/workspaces/fsharp.org/css/main.css", 3 | "tailwindCSS.experimental.classRegex": [] 4 | } -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | fsharp.org -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | # Hello! This is where you manage which Jekyll version is used to run. 4 | # When you want to use a different version, change it below, save the 5 | # file and run `bundle install`. Run Jekyll with `bundle exec`, like so: 6 | # 7 | # bundle exec jekyll serve 8 | # 9 | # This will help ensure the proper Jekyll version is running. 10 | # Happy Jekylling! 11 | gem "jekyll", "~> 4.4.1" 12 | 13 | # This is the default theme for new Jekyll sites. You may change this to anything you like. 14 | gem "minima", "~> 2.0" 15 | 16 | # If you want to use GitHub Pages, remove the "gem "jekyll"" above and 17 | # uncomment the line below. To upgrade, run `bundle update github-pages`. 18 | # gem "github-pages", group: :jekyll_plugins 19 | 20 | # If you have any plugins, put them here! 21 | group :jekyll_plugins do 22 | gem "jekyll-feed", "~> 0.17" 23 | gem 'jekyll-postcss-v2' 24 | gem "jekyll-sitemap" 25 | end 26 | 27 | # Windows does not include zoneinfo files, so bundle the tzinfo-data gem 28 | gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby] 29 | 30 | # Performance-booster for watching directories on Windows 31 | gem "wdm", "~> 0.1.0" if Gem.win_platform? 32 | 33 | gem "jekyll-redirect-from", "~> 0.15.0" 34 | 35 | # Add the following lines to include the missing dependencies 36 | gem 'webrick' 37 | gem 'rexml' 38 | gem 'csv' 39 | gem 'base64' 40 | gem 'bigdecimal' 41 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Attribution 4.0 International (CC BY 4.0) 2 | 3 | This work is licensed under the Creative Commons Attribution 4.0 International License. 4 | To view a copy of this license, visit https://creativecommons.org/licenses/by/4.0/ 5 | or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. 6 | -------------------------------------------------------------------------------- /_books/F#_high_performance_2017.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: F# High Performance 3 | author: Eriawan Kusumawardhono 4 | year: 2017 5 | image: /learn/files/book_covers/fsharp_high_performance.webp 6 | bookurl: https://www.packtpub.com/en-us/product/f-high-performance-9781786462992 7 | --- 8 | This easy-to-follow guide is full of hands-on examples of real-world multithreading tasks. Each topic is explained and placed in context, and for the more inquisitive, there are also more in-depth details of the concepts used. 9 | 10 | In this book you will: 11 | 12 | - Understand how the execution of functions in F# works 13 | - Identify common performance bottlenecks 14 | - Implement best practices to optimize performance 15 | - Use the available tooling to help measure performance 16 | - Combine the best practice of asynchronous and synchronous 17 | - Optimize further using various F# language constructs 18 | -------------------------------------------------------------------------------- /_books/beginning_f#_4_2016.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Beginning F# 4.0 3 | author: Robert Pickering, Kit Eason 4 | year: 2016 5 | image: /learn/files/book_covers/beginning_fsharp_4.webp 6 | bookurl: https://link.springer.com/book/10.1007/978-1-4842-1374-2 7 | --- 8 | This book is a great foundation for exploring functional-first programming and 9 | its role in the future of application development. The best-selling introduction to F#, 10 | now thoroughly updated to version 4.0, will help you learn the language and explore 11 | its new features. 12 | -------------------------------------------------------------------------------- /_books/building_f#_applications_video_2017.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Building F# Applications (Video) 3 | author: Richard Broida 4 | year: 2017 5 | image: /learn/files/book_covers/building_fsharp_applications.avif 6 | bookurl: https://www.packtpub.com/en-us/product/building-f-applications-9781788298858 7 | --- 8 | Learn how to use F#'s functional features to rapidly turn requirements into software designs that are correct, complete, extensible, bug-free, and easy to read and understand. 9 | 10 | - Setup your IDE for F# development 11 | - Use F#-friendly tools for test automation, builds, and dependency management 12 | - Model your application's problem domain using F#'s immutable data types and collections 13 | - Build simple-to-complex application behavior with F# functions 14 | - Interoperate between your F# applications and other .NET languages 15 | -------------------------------------------------------------------------------- /_books/essential_f#.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Essential F# 3 | author: Ian Russell 4 | year: 2023 5 | image: /learn/files/book_covers/essential_fsharp.jpeg 6 | bookurl: https://leanpub.com/essential-fsharp 7 | --- 8 | This is a practical book aimed at efficiently getting you up to speed with the essentials functional-first programming in F#. 9 | 10 | Everywhere you look, programming languages are gaining functional features. The problem is that it's not the individual features that make functional programmers happy, it's the way that your approach to writing software and the features work together to help you write simple code to solve interesting problems. This book will help you to discover why F# is such a popular language with those who have spent time learning its secrets. 11 | 12 | This book started life as a series of blog posts on my Company's website (). The sum of the content is what a developer needs to know to be able to work on one of our F# Line of Business codebases. I have improved and extended the content, upgraded the code to F# 5 and ensured that the code will run in VS Code. 13 | -------------------------------------------------------------------------------- /_books/export_f#_4_2015.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Expert F# 4.0 3 | author: Don Syme, Adam Granicz, Antonio Cisternino 4 | year: 2015 5 | image: /learn/files/book_covers/expert_fsharp_4.webp 6 | bookurl: https://link.springer.com/book/10.1007/978-1-4842-0740-6 7 | --- 8 | Expert F# 4.0 is about practical programming in a beautiful language that puts the power and elegance of data-rich functional programming into the hands of professional developers. In combination with .NET, F# achieves unrivaled levels of programmer productivity and program clarity. 9 | 10 | - A comprehensive guide to F# by the inventor of F# 11 | - A treasury of F# techniques for practical problem-solving 12 | - An in-depth case book of how F# applications and of F# 4.0 concepts, syntax, and features 13 | 14 | The world's experts in F# show you how to program in F# the way they do! 15 | -------------------------------------------------------------------------------- /_books/f#_4_design_patterns_2016 .md: -------------------------------------------------------------------------------- 1 | --- 2 | title: F# 4.0 Design Patterns 3 | author: Gene Belitski 4 | year: 2016 5 | image: /learn/files/book_covers/fsharp_4_design_patterns.webp 6 | bookurl: https://www.packtpub.com/en-us/product/f-40-design-patterns-9781785889516 7 | --- 8 | This book will encourage enterprise developers coming to F# from other platforms to cultivate an idiomatic F# coding skillset by fully embracing the functional-first F# paradigm. 9 | 10 | In this book you will: 11 | 12 | - Acquire the practical knowledge to use the main functional design patterns 13 | - Realign some imperative and object-oriented principles under the functional approach 14 | - Develop your confidence in building and combining first-order and higher-order functions 15 | - Learn to use core language pattern matching effectively 16 | - Make use of native F# algebraic data types in place of custom-built classes 17 | - Recognize and measure the difference in resource consumption between sequences and materialized data collections 18 | - Navigate and use F# Core libraries with ease by seeing patterns behind specific library functions 19 | - Master writing generic polymorphic code 20 | -------------------------------------------------------------------------------- /_books/f#_applied_2016.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: F# Applied 3 | author: Tamizhvendan S 4 | year: 2016 5 | image: /learn/files/book_covers/fsharp_applied.webp 6 | bookurl: https://www.tamizhvendan.in/book/FsApplied/ 7 | --- 8 | “F# Applied” is an excellent introduction to applied, modern programming for the web. Starting with Suave, the F# server-side web framework, this book will teach you how to create complete applications using Functional-First Programming with F# 9 | In this book you will read: 10 | 11 | - How to create complete application using Functional Programming Principles using F# 12 | - An in-depth understanding of Web development in F# using Suave 13 | - How to develop applications using EventSourcing, CQRS, and DDD in F# 14 | - How to set up continuous integration and continuous deployment using FAKE and Docker 15 | - How to leverage libraries like Rx, FSharp.Data and Paket 16 | -------------------------------------------------------------------------------- /_books/f#_applied_ii_2018.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: F# Applied II 3 | author: Tamizhvendan S 4 | year: 2018 5 | image: /learn/files/book_covers/fsharp_applied_ii.webp 6 | bookurl: https://www.tamizhvendan.in/book/FsApplied2/ 7 | --- 8 | "F# Applied II" helps you to learn how to build a real-world, production-ready, end-to-end web application in F# using the functional programming principles by developing a Twitter clone from scratch. 9 | 10 | In this book you will learn: 11 | 12 | - The Application of functional programming principles in a real-world application 13 | - Server-Side Rendering in Suave using DotLiquid 14 | - Authentication and Authorisation in Suave 15 | - Application Logging using [Logary](https://logary.github.io/) 16 | - Error handling in asynchronous operations using [Chessie](http://fsprojects.github.io/Chessie/). 17 | - Database access using [SQLProvider](http://fsprojects.github.io/SQLProvider/) 18 | - Database schema management using [Fluent Migrator](https://github.com/fluentmigrator/fluentmigrator) 19 | - Realtime Tweet Feeds and Notifications using [GetStream.io](https://getstream.io/) 20 | -------------------------------------------------------------------------------- /_books/f#_deep_dives_2014.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: F# Deep Dives 3 | author: Edited by Tomas Petricek and Phillip Trelford 4 | year: 2014 5 | image: /learn/files/book_covers/fsharp_deep_dives.jpg 6 | bookurl: https://www.manning.com/books/f-sharp-deep-dives 7 | --- 8 | _F# Deep Dives_ presents a collection of real-world F# techniques, each written by expert practitioners. Each chapter presents a new use case where you'll read how the author used F# to solve a complex problem more effectively than would have been possible using a traditional approach. You'll not only see how a specific solution works in a specific domain, you'll also learn how F# developers approach problems, what concepts they use to solve them, and how they integrate F# into existing systems and environments. 9 | -------------------------------------------------------------------------------- /_books/f#_for_quantitative_finance_2013.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: F# for Quantitative Finance 3 | author: Johan Astborg 4 | year: 2013 5 | image: /learn/files/book_covers/fsharp_for_quantitative_finance.webp 6 | bookurl: https://www.packtpub.com/en-us/product/f-for-quantitative-finance-9781782164630 7 | --- 8 | This book will cover everything you need to know about using functional 9 | programming for quantitative finance. Using a functional programming language 10 | will enable you to concentrate more on the problem itself rather than 11 | implementation details. Tutorials and snippets are summarized into an automated 12 | trading system throughout the book. 13 | 14 | In this book you will: 15 | 16 | - Use Visual Studio as your main tool for writing F# 17 | - Utilize F# to aggregate data and calculate statistics 18 | - Plot and visualize data in F# 19 | - Learn about volatility, delta hedging, and volatility arbitrage 20 | - Understand basic numerical analysis and algorithm implementation 21 | - Model orders and market data together with basic pre-trade risk 22 | - Structure and write object-oriented code 23 | - Develop larger programs using F# 24 | - Explore automated trading systems and quantitative trading models 25 | -------------------------------------------------------------------------------- /_books/f#_for_scientists_2008.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: F# for Scientists 3 | author: Jon Harrop 4 | year: 2008 5 | image: /learn/files/book_covers/fsharp_for_scientists.jpg 6 | bookurl: https://www.amazon.com/F-Scientists-Jon-Harrop-ebook/dp/B005PS97RO/ 7 | --- 8 | F# for Scientists explains and demonstrates the powerful features of this important new 9 | programming language. The book assumes no prior experience and guides the reader from 10 | the basics of computer programming to the implementation of state-of-the-art algorithms. 11 | Written in a clear and concise style, F# for Scientists is well suited for researchers, 12 | scientists. It also serves as an 13 | ideal supplemental text for advanced undergraduate and graduate students with a background in science or engineering. 14 | -------------------------------------------------------------------------------- /_books/f#_ile_fonksiyonel_programlama_2021.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "F# ile Fonksiyonel Programlama (Türkçe/Turkish)" 3 | author: Ali Özgür 4 | year: 2021 5 | image: /learn/files/book_covers/fsharp_ile_fonksiyonel_programlama_kitabi_on_kapak.webp 6 | bookurl: https://www.dikeyeksen.com/products/f-ile-fonksiyonel-programlama?variant=5564153102374 7 | --- 8 | This book is the first and the only F# book in Turkish. The book covers F# and general functional programming principles. 9 | 10 | F#, aktif ve bağımsız geliştirici topluluğu tarafından yön verilen, özellikle bulut teknolojileri, veri analizi ve bilimsel çalışmalarda kullanımı her geçen gün artan sade ve şık bir programlama dilidir. 11 | F# ile Microsoft'un .NET platformu üzerinde Windows, Linux ve OSX işletim sistemlerinde çalışabilen her çapta ve özllikte uygulamalar geliştirebilirsiniz. Hatta sistem yönetimi scriptlerinizi bile F# ile oluşturabilirsiniz. F# ile Fonksiyonel Programlama kitabında F#'ın sunduğu tüm bu imkanlar ile sizi tanıştırmayı ve bol kod örnekleri ile F#'ı özümsemenizi hedefliyoruz. 12 | -------------------------------------------------------------------------------- /_books/f#_in_action_2024.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: F# in Action 3 | author: Isaac Abraham 4 | year: 2024 5 | image: /learn/files/book_covers/fsharp_in_action.png 6 | bookurl: https://www.manning.com/books/f-sharp-in-action 7 | --- 8 | F# is engineered to make functional programming practical and accessible. This book will get you started writing your first simple, robust, and high performing functional code. 9 | 10 | F# lets you keep your code simple even in the most complex applications—and it’s the perfect language for taking your first steps in functional programming. This practical, example-driven guide shows you how to build professional applications the F# way. 11 | 12 | In F# in Action you will learn how to: 13 | 14 | - Write performant and robust systems with succinct F# code 15 | - Model domains quickly, easily and accurately with F#’s type system 16 | - Design solutions using functional programming patterns 17 | - Ingest and process disparate data sources 18 | - Develop data-driven web applications 19 | - Unit test F# code 20 | - Effectively model data using a variety of techniques 21 | - Use scripts to rapidly explore domains 22 | 23 | _F# in Action_ is based on author and Microsoft F# MVP Isaac Abraham’s years of experience working with developers as an F# consultant. It upgrades .NET development skills with the core principles of functional programming, and you’ll soon see how F#’s functional-first approach makes it easy to learn this powerful paradigm. 24 | -------------------------------------------------------------------------------- /_books/functional_programming_using_f#_2013.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Functional Programming Using F# 3 | author: Michael R. Hansen, Hans Rischel 4 | year: 2013 5 | image: /learn/files/book_covers/functional_programming_using_fsharp.jpg 6 | bookurl: https://a.co/d/2aK6qxW 7 | --- 8 | This comprehensive introduction to the principles of functional programming using F# 9 | shows how to apply basic theoretical concepts to produce succinct and elegant programs. 10 | It demonstrates the role of functional programming in a wide spectrum of applications 11 | including databases and systems. Coverage also includes advanced features in the .NET 12 | library, the imperative features of F# and topics such as text processing, sequences, 13 | computation expressions and asynchronous computation. With a broad spectrum of examples 14 | and exercises, the book is perfect for courses in functional programming and for self-study. 15 | Enhancing its use as a text is an accompanying website with downloadable programs, lecture 16 | slides, a mini-projects and links to further F# sources. 17 | -------------------------------------------------------------------------------- /_books/learning_functional_programming_with_f#_2017.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Learning Functional Programming with F#: Get started on building end-to-end web applications with F#" 3 | author: Onur Gumus 4 | year: 2017 5 | image: /learn/files/book_covers/learning_functional_programming_with_fsharp.avif 6 | bookurl: https://www.packtpub.com/en-us/product/learning-functional-programming-with-f-9781788477840 7 | --- 8 | Build end-to-end web applications with F# 9 | Develop web applications that includes server-side as well as the client-side programming using Fable, F# to JavaScript compiler. 10 | 11 | - Learn F# with this learner-friendly approach in this course 12 | - This single course covers all the basics so you can start building powerful applications 13 | - Get familiar with all the top modules and components included in this course 14 | -------------------------------------------------------------------------------- /_books/machine_learning_projects_for_dotnet_developers_2015.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Machine Learning Projects for .NET Developers 3 | author: Mathias Brandewinder 4 | year: 2015 5 | image: /learn/files/book_covers/machine_learning_projects_for_dotnet_developers.jpg 6 | bookurl: https://www.amazon.com/Machine-Learning-Projects-NET-Developers/dp/1430267674/?tag=mathias-brandewinder-20 7 | --- 8 | Machine Learning Projects for .NET Developers shows you how to build smarter .NET applications that learn from data, using simple algorithms and techniques that can be applied to a wide range of real-world problems. 9 | -------------------------------------------------------------------------------- /_books/mastering_f#_2016.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Mastering F# 3 | author: Alfonso García-Caro Núñez & Suhaib Fahad 4 | year: 2016 5 | image: /learn/files/book_covers/mastering_fsharp.avif 6 | bookurl: https://www.packtpub.com/en-us/product/mastering-f-9781784393434 7 | --- 8 | This easy-to-follow guide with syntaxes will help you master the concepts of F#. Packed with in-depth examples of real-world uses, this book covers each topic in detail with a reference to C#, so you will understand the difference between the languages. 9 | 10 | In this book you will: 11 | 12 | - Understand the basics of F# and organize F# source code with Visual Studio 13 | - Work with F# data structures and create functional data structures in F# interoperate with C# 14 | - Build and use asynchronous programming patterns with F# 15 | - Create and use type providers that help perform data analysis from within Visual Studio 16 | - Develop applications with pure F# code in WPF or ASP.NET MVC 17 | - Find out how to perform distributed programming with ServiceBus or ZeroMQ 18 | - Visualize data with charts, and work with Excel and R language Type providers 19 | -------------------------------------------------------------------------------- /_books/multi-paradign_programming_using_f#_and_dotnet.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Multi-Paradigm Programming Using F# and .NET 3 | author: Ali Baghernejad 4 | year: 2019 5 | image: /learn/files/book_covers/multi-paradigm_programming_using_fsharp.jpg 6 | bookurl: http://www.naghoospress.ir/bookview.aspx?bookid=1486730 7 | --- 8 | F# is the result of combining the power and capabilities of functional programming with with the imperative and object-oriented paradigms of .NET. Multi-Paradigm Programming In F# is a book that help developers to make 9 | applications using F# tools and the .NET libraries. This book is written in Persian language in 509 pages. 10 | In this book you will read: 11 | 12 | - Introduction to F# (History and Advantages) 13 | - Get Statring With F# (Installation, Interactive Environment, ...) 14 | - F# Fundementals (Values, Primitive Types, Functions, Type Inference, Generic, ...) 15 | - Advance Types (Lists, Tuples, Enums, Discriminated Union, Unit of Measures, ...) 16 | - Functional Programming (Expressions, Imutability, Function Values, Pattern Matching, Piping, ...) 17 | - Imperative Programming (Statements, Mutable Values, Side Effects, Arrays, Resource Management, ...) 18 | - Object Oriented Programming (Objects, Classes, Inheritance, Abstraction, Polymorphism, ...) 19 | - Error Handling (Exceptions, Exception Types, Throwing and Catching Exceptions, ...) 20 | - Databases (Sql Server, Query Expressions, Type Providers, ...) 21 | - User Interfaces (Windows Forms, WPF, GTK#) 22 | -------------------------------------------------------------------------------- /_books/programming_language_concepts_2017.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Programming Language Concepts 3 | author: Peter Sestoft 4 | year: 2017 5 | image: /learn/files/book_covers/programming_language_concepts.webp 6 | bookurl: https://link.springer.com/book/10.1007/978-3-319-60789-4 7 | --- 8 | The book Programming Language Concepts (PLC) provides an introduction to programming language concepts and implementation technology, such as interpretation, compilation, type checking and type inference, abstract machines, and garbage collection. F# is used as a meta language throughout the book expressing all concepts and examples of programming language design in a modern strongly-typed language of the ML-family, enabling the reader to experiment with the ideas right away. 9 | -------------------------------------------------------------------------------- /_books/real_world_functional_programming_2010.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Real World Functional Programming 3 | author: Tomas Petricek with Jon Skeet 4 | year: 2010 5 | image: /learn/files/book_covers/real_world_functional_programming.jpg 6 | bookurl: https://a.co/d/gDtsyqF 7 | --- 8 | Real World Functional Programming is a unique tutorial that explores the 9 | functional programming model through the F# and C# languages. The clearly 10 | presented ideas and examples teach readers how functional programming 11 | differs from other approaches. It explains how ideas look in F#-a 12 | functional language-as well as how they can be successfully used to solve 13 | programming problems in C#. 14 | -------------------------------------------------------------------------------- /_books/stylish_f#_6_2022.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Stylish F# 6 3 | author: Kit Eason 4 | year: 2022 5 | image: /learn/files/book_covers/stylish_fsharp_6.png 6 | bookurl: https://link.springer.com/book/10.1007/978-1-4842-7205-3 7 | --- 8 | Why just get by in F# when you can program in style. This book goes beyond syntax and into design. It provides F# developers with best practices, guidance, and advice to write beautiful, maintainable, and correct code. This second edition, fully updated for .NET 6 and F# 6, includes all new coverage of anonymous records, the task {} computation expression, and the relationship between types and modules. 9 | 10 | _Stylish F# 6_ covers every design decision that a developer makes in constructing F# programs, helping you make the most educated and valuable design choices at every stage of code development. You will learn about the design of types and function signatures, the benefits of immutability, and the uses of partial function application. You will understand best practices for writing APIs to be used by F#, C#, and other languages. Each carefully vetted design choice is supported with compelling examples, illustrations, and rationales. 11 | 12 | **What You Will Learn** 13 | 14 | - Know why, when, and how to code in immutable style 15 | - Use collection functions, piping, and function composition to build working software quickly 16 | - Be aware of the techniques available to bring error handling into the mainstream of program logic 17 | - Optimize F# code for maximum performance 18 | - Identify and implement opportunities to use function injection to improve program design 19 | - Appreciate the methods available to handle unknown data values 20 | - Understand asynchronous and parallel programming in F#, and how it differs from C# asynchronous programming 21 | - Exploit records and anonymous records as low-overhead, easily comparable containers for structured data 22 | -------------------------------------------------------------------------------- /_books/the_book_of_f#_2014.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: The Book of F# 3 | author: Dave Fancher 4 | year: 2014 5 | image: /learn/files/book_covers/book_of_fsharp.png 6 | bookurl: https://nostarch.com/fsharp 7 | --- 8 | The Book of F# aims to introduce intermediate and experienced developers to functional-first programming with F#. Throughout the book, you'll learn how this robust language can help you focus on creating correct solutions by introducing a variety of important concepts including currying, partial application, pattern matching, units of measure, asynchronous workflows, query expressions, type providers, and computation expressions. Furthermore, you'll discover how F#'s rich object-oriented capabilities allow it to naturally fit into existing applications. 9 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | encoding: utf-8 2 | markdown: kramdown 3 | 4 | include: 5 | - /css/* 6 | 7 | exclude: 8 | - package-lock.json 9 | - node_modules 10 | - package.json 11 | - postcss.config.js 12 | - tailwind.config.js 13 | 14 | url: "https://fsharp.org" 15 | 16 | gems: 17 | - jekyll-redirect-from 18 | 19 | 20 | # Note: individual pages can be excluded from sitemap by including 21 | # `sitemap: false` in the frontmatter. 22 | # Glob excludes can be achieved with the `defaults` setting in 23 | # this config file 24 | # See: https://github.com/jekyll/jekyll-sitemap 25 | plugins: 26 | - jekyll-sitemap 27 | 28 | collections: 29 | testimonials: 30 | output: false 31 | permalink: /testimonials/#:id 32 | snippets: 33 | output: false 34 | sort_by: order 35 | excerpt_enabled: false 36 | books: 37 | output: false 38 | sort_by: year 39 | excerpt_enabled: false 40 | 41 | defaults: 42 | - 43 | scope: 44 | path: "archive/**/*" 45 | values: 46 | sitemap: false 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /_includes/usemenu.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | F# on Mac 4 | F# on Linux 5 | F# on Windows 6 |
7 |
8 | F# for Desktop Apps 9 | F# for Mobile Apps 10 | F# for Web Apps 11 | F# for Jupyter Notebooks 12 |
13 |
14 | F# in the browser 15 |
16 |
17 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: main 3 | --- 4 |
5 |
6 | 9 |
10 | {{ content }} 11 |
12 |
13 |
14 | 15 | -------------------------------------------------------------------------------- /_layouts/page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: main 3 | --- 4 | 5 |
6 |
7 | 10 | {{ content }} 11 |
12 |
13 | -------------------------------------------------------------------------------- /_snippets/async_expressions.md: -------------------------------------------------------------------------------- 1 | --- 2 | order: 16 3 | title: AsyncExpressions.fs 4 | excerpt_separator: 5 | code: | 6 | // An async function 7 | let fetchDataAsync url = async { 8 | printfn "Fetching data from %s..." url 9 | do! Async.Sleep 1000 // Simulate network delay 10 | return sprintf "Data from %s" url 11 | } 12 | 13 | // Using pattern matching in async code 14 | let processPersonAsync person = async { 15 | let result = validatePerson person.Age person.Name 16 | match result with 17 | | Ok validated -> 18 | return! fetchDataAsync $"profile/{validated.Name}" 19 | | Error msg -> 20 | return $"Validation error: {msg}" 21 | } 22 | 23 | processPersonAsync { Name = "Snowdrop"; Age = 13} 24 | |> Async.RunSynchronously 25 | --- 26 | ## Async Programming made Easy 27 | 28 | F# async expressions provide a powerful way to handle asynchronous programming, making it more readable and maintainable. They allow you to write non-blocking code that looks like synchronous code, which is particularly useful for I/O-bound operations. 29 | 30 | - **Async expressions** provide a clean syntax for defining asynchronous workflows 31 | - **Integration with existing libraries** makes it easy to use async expressions with other F# features 32 | - **Error handling** is simplified with the use of discriminated unions and pattern matching 33 | - **Seamless integration** with F#'s type system ensures type safety and reduces runtime errors 34 | - **Support for cancellation** and timeouts allows you to manage long-running operations effectively 35 | -------------------------------------------------------------------------------- /_snippets/computation_expressions.md: -------------------------------------------------------------------------------- 1 | --- 2 | order: 17 3 | title: ComputationExpressions.fs 4 | excerpt_separator: 5 | code: | 6 | // Define a custom computation expression for validation 7 | type ValidationBuilder() = 8 | member _.Bind(x, f) = // Defines "let!" 9 | match x with 10 | | Ok value -> f value 11 | | Error e -> Error e 12 | member _.Return(x) = Ok x // Defines "return" 13 | member _.ReturnFrom(x) = x // Defines "return!" 14 | let validate = ValidationBuilder() 15 | 16 | type Person = { Name: string; Age: int } 17 | 18 | // Use the custom computation expression 19 | let validatePerson age name = validate { 20 | let! validAge = 21 | if age >= 0 && age < 150 then Ok age 22 | else Error "Age must be between 0 and 150" 23 | 24 | let! nonEmptyName = 25 | if String.length name > 0 then Ok name 26 | else Error "Name cannot be empty" 27 | 28 | if String.length name > 100 then 29 | return! Error "Name is too long!" 30 | else 31 | return { Name = nonEmptyName; Age = validAge } 32 | } 33 | --- 34 | ## Clean Code with Computation Expressions 35 | 36 | F# computation expressions give you an elegant syntax for compositional control flows with a clean, readable notation that some say is F#'s superpower. 37 | 38 | - **Computation expressions** factor out how code is composed together 39 | - **Custom control flow abstractions** create domain-specific mini-languages 40 | - **Seamless error handling** with [railway-oriented programming](https://fsharpforfunandprofit.com/rop/) patterns 41 | - **Elegant data transformations** by hiding boilerplate and focusing on business logic 42 | - **Composable workflows** that can be combined and nested for complex operations 43 | -------------------------------------------------------------------------------- /_snippets/domain_modelling.md: -------------------------------------------------------------------------------- 1 | --- 2 | order: 11 3 | title: PaymentSystem.fs 4 | code: | 5 | type CardInfo = { Number: string; Expiry: string; Cvv: string } 6 | 7 | type BankInfo = { AccountNumber: string; RoutingNumber: string } 8 | 9 | type PayPalInfo = { Email: string; Token: string } 10 | 11 | type PaymentMethod = 12 | | CreditCard of CardInfo 13 | | BankTransfer of BankInfo 14 | | PayPal of PayPalInfo 15 | 16 | type Payment = { 17 | Amount: decimal 18 | Method: PaymentMethod 19 | } 20 | 21 | let processPayment payment = 22 | match payment.Method with 23 | | CreditCard card -> 24 | printfn 25 | "Processing $%.2f via card %s" 26 | payment.Amount 27 | card.Number 28 | | BankTransfer bank -> 29 | printfn 30 | "Processing $%.2f via bank account %s" 31 | payment.Amount 32 | bank.AccountNumber 33 | | PayPal pp -> 34 | printfn 35 | "Processing $%.2f via PayPal account %s" 36 | payment.Amount 37 | pp.Email 38 | --- 39 | ## Domain Models made Simple and Safe 40 | 41 | F# gives you superb capabilities to create precise domain models that prevent errors at compile time. 42 | 43 | - **Discriminated unions** model each payment method with exactly the fields it needs 44 | - **No "impossible" states** can exist - a credit card payment can't have a routing number 45 | - **Exhaustive pattern matching** ensures every payment type is handled properly 46 | - **Type safety** catches errors at compile time that would be runtime bugs in other languages 47 | 48 | By modeling your domain using F#'s algebraic data types, you create self-documenting code where the type system itself enforces business rules. This powerful technique shifts many bugs from runtime to compile time, dramatically improving software reliability. 49 | -------------------------------------------------------------------------------- /_snippets/fable.md: -------------------------------------------------------------------------------- 1 | --- 2 | order: 12 3 | title: WebApps.fs 4 | excerpt_separator: 5 | code: | 6 | open Browser.Dom 7 | open Feliz 8 | 9 | // DOM manipulation 10 | let button = document.createElement("button") 11 | button.textContent <- "Click me!" 12 | button.addEventListener("click", fun _ -> 13 | window.alert("Hello from F#!") 14 | ) 15 | document.body.appendChild(button) |> ignore 16 | 17 | // React component (Feliz) 18 | let counter = React.functionComponent(fun () -> 19 | let (count, setCount) = React.useState(0) 20 | Html.div [ 21 | Html.button [ 22 | prop.text "-" 23 | prop.onClick (fun _ -> setCount(count - 1) ) 24 | ] 25 | Html.span [prop.text count] 26 | Html.button [ 27 | prop.text "+" 28 | prop.onClick (fun _ -> setCount(count + 1) ) 29 | ] 30 | ] 31 | ) 32 | --- 33 | ## F# for JavaScript and the Full Stack 34 | 35 | F# is for both client and server. With [F# web technologies]({{ '/use/web-apps/' | relative_url }}), you can target JavaScript environments directly. This means you can use F# to build web applications, mobile apps, and even serverless functions that run in the cloud. 36 | 37 | - **Type-safe DOM manipulation** catches errors at compile time, not runtime 38 | - **Seamless React integration** with hooks and modern patterns 39 | - **Full npm ecosystem access** with clean TypeScript-like interop 40 | - **Simplified async programming** with F#'s computation expressions for promises 41 | 42 | F# brings its powerful type system and immutability to frontend development, eliminating common JavaScript bugs while maintaining full access to the JavaScript ecosystem. 43 | -------------------------------------------------------------------------------- /_snippets/helloworld.md: -------------------------------------------------------------------------------- 1 | --- 2 | order: 0 3 | title: HelloWorld.fs 4 | excerpt_separator: 5 | code: | 6 | let hello name = 7 | printfn $"Hello, {name}!" 8 | 9 | let greets = [ 10 | "World" 11 | "Solar System" 12 | "Galaxy" 13 | "Universe" 14 | "Omniverse" 15 | ] 16 | 17 | greets |> List.iter hello 18 | --- 19 | ## Concise like Python 20 | 21 | F#'s elegant syntax and strong typing give you the tools to solve problems succinctly, robustly and happily. 22 | 23 | - **Concise syntax** defines reusable functions with minimal boilerplate 24 | - **Simple lists** uses indentation-based syntax without requiring commas 25 | - **String interpolation** provides readable string formatting with the `$` prefix 26 | - **Pipeline operator** creates a readable left-to-right flow of data 27 | 28 | In just a few lines of code, F# provides a clean, readable implementation that would require significantly more boilerplate in many other languages. This expressive style becomes even more valuable as your programs grow in complexity. 29 | -------------------------------------------------------------------------------- /_snippets/oop.md: -------------------------------------------------------------------------------- 1 | --- 2 | order: 10 3 | title: OOP.fs 4 | excerpt_separator: 5 | code: | 6 | // Interface definition 7 | type ICalculator = 8 | abstract Add: x: int -> y: int -> int 9 | abstract Multiply: x: int -> y: int -> int 10 | 11 | // Class implementation with interface 12 | type Calculator(precision: int) = 13 | 14 | // Interface implementation 15 | interface ICalculator with 16 | member _.Add x y = x + y 17 | member _.Multiply x y = x * y 18 | 19 | // Public methods 20 | member _.Subtract(x, y) = x - y 21 | 22 | // Method using property 23 | member _.RoundToPrecision(value: float) = 24 | System.Math.Round(value, precision) 25 | 26 | // Method with default parameter 27 | member _.Power(x: float, ?exponent: float) = 28 | let exp = defaultArg exponent 2.0 29 | System.Math.Pow(x, exp) 30 | 31 | // Object expression (anonymous implementation) 32 | let quickCalc = 33 | { new ICalculator with 34 | member _.Add x y = x + y 35 | member _.Multiply x y = x * y } 36 | 37 | // Type extension - add method to existing type 38 | type System.Int32 with 39 | member x.IsEven = x % 2 = 0 40 | --- 41 | ## Objects Made Simple 42 | 43 | F# is **functional first** and **immutable by default**, but it also provides pragmatic support for object programming. 44 | 45 | - **Seamless .NET integration** lets you work with existing .NET libraries and frameworks 46 | - **Rich interface system** allows you to define clear contracts for your components 47 | - **Object expressions** provide lightweight implementation of interfaces without defining full classes 48 | - **Concise member syntax** keeps methods and properties clean and readable 49 | - **Automatic property generation** reduces boilerplate code for data-carrying types 50 | - **Type extensions** let you add methods to existing types without inheritance 51 | -------------------------------------------------------------------------------- /_snippets/sequence_expressions.md: -------------------------------------------------------------------------------- 1 | --- 2 | order: 15 3 | title: SequenceExpressions.fs 4 | excerpt_separator: 5 | code: | 6 | let rec fizzBuzzSeq n = seq { 7 | match n with 8 | | x when x % 15 = 0 -> "fizzbuzz" 9 | | x when x % 3 = 0 -> "fizz" 10 | | x when x % 5 = 0 -> "buzz" 11 | | _ -> n.ToString() 12 | 13 | // Tail recursion makes this as efficient as a "while" loop 14 | yield! fizzBuzzSeq (n + 1) 15 | } 16 | 17 | // Process the sequence using a pipeline 18 | fizzBuzzSeq 1 19 | |> Seq.take 100 20 | |> Seq.iter (printfn "%s") 21 | --- 22 | ## Data Pipelines with Sequence Expressions 23 | 24 | F# sequence expressions provide compositional, functional stream processing capabilities that integrate seamlessly with every part of the language. 25 | 26 | - **Simplified data generation** through sequence expressions 27 | - **Compositional data processing** through library routines 28 | - **On-demand evaluation** of data streams 29 | - **Fluent, maintainable code** that is easy to read and understand 30 | -------------------------------------------------------------------------------- /_snippets/typeproviders.md: -------------------------------------------------------------------------------- 1 | --- 2 | order: 14 3 | title: TypeProviders.fs 4 | excerpt_separator: 5 | code: | 6 | open FSharp.Data 7 | 8 | type PeopleDB = CsvProvider<"people.csv"> 9 | 10 | let printPeople () = 11 | let people = PeopleDB.Load("people.csv") 12 | 13 | for person in people.Rows do 14 | // Access the CSV fields with intellisense and type safety! 15 | printfn $"Name: %s{person.Name}, Id: %i{person.Id}" 16 | --- 17 | ## Type-Safe, Integrated Data 18 | 19 | F# Type Providers create a seamless bridge between your code and data sources. 20 | 21 | - **Zero-friction data access** connects to CSV, JSON, XML, SQL, and more without manual mapping 22 | - **Static typing at compile time** prevents runtime errors when accessing external data 23 | - **Automatic schema discovery** creates F# types directly from sample data or schemas 24 | - **Full IDE integration** provides intellisense for external data sources 25 | - **Design-time capabilities** validate your code against live data sources before execution 26 | -------------------------------------------------------------------------------- /_snippets/unitsOfMeasure.md: -------------------------------------------------------------------------------- 1 | --- 2 | order: 19 3 | title: UnitsOfMeasure.fs 4 | excerpt_separator: 5 | code: | 6 | open FSharp.Data.UnitSystems.SI 7 | 8 | // Acceleration due to gravity 9 | let g = 9.81 10 | 11 | // The return type is inferred as float 12 | let distance ( t: float ) = 13 | 0.5 * g * t * t 14 | 15 | let fallDuration = 2.0 16 | let fallDistance = distance fallDuration 17 | printfn $"Distance fallen in {fallDuration}s is {fallDistance}m" 18 | --- 19 | ## Safe Numbers through Units of Measure 20 | 21 | F# offers world-class compile-time unit safety without runtime overhead, giving you the power to express your domain in a type-safe way. This is particularly useful in scientific, engineering and financial applications where unit errors can lead to catastrophic results. 22 | 23 | - **Compile-time dimensional safety** catches errors before running, preventing scientific and engineering mistakes 24 | - **Domain-specific units** express quantities that directly reflect your problem space 25 | - **Automatic unit conversions** maintain type safety while handling complex calculations 26 | - **Seamless interoperability** works with normal numeric types when needed 27 | - **Custom unit definitions** let you create your own units and conversions with simple syntax 28 | -------------------------------------------------------------------------------- /_testimonials/15below-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: 15below-1 3 | bullets: 4 | - '**Michael Newton**, Senior Developer' 5 | - 15below Ltd, [permalink](#15below-1) 6 | keywords: [] 7 | quote: We would recommend F# as an additional tool in the kit of any company building software on the .NET stack. 8 | --- 9 | Historically, our code base has been written in a mix of C# and VB.net. F#'s excellent interoperability 10 | with the rest of .NET allows us to use it for components where it's particular strength's shine without 11 | having to discard or rewrite our existing code. 12 | 13 | Whether it's driving the build and continuous integration system (due to scripting being a first 14 | class citizen in the F# world) or writing rock solid infrastructure components (due to the easy 15 | use of functional paradigms via features such as computational expressions, type inference and 16 | discriminated unions) we have found our F# code to be concise, easy to write and reliable to use. 17 | It is a perfect fit for many components within our messaging based architecture. 18 | 19 | We would recommend it as an additional tool in the kit of any company building software on the .NET stack. 20 | -------------------------------------------------------------------------------- /_testimonials/advertisement-rating-and-ranking-at-microsoft.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: advertisement-rating-and-ranking-at-microsoft 3 | bullets: 4 | - Anton Schwaighofer, **Microsoft** 5 | - bing Ads Ranking Allocation and Pricing 6 | - '[source](http://research.microsoft.com/en-us/events/2012summerschool/kenjifsharpfphdsummerschool2012new.pdf), [permalink](#advertisement-rating-and-ranking-at-microsoft)' 7 | keywords: 8 | - advertising 9 | - ranking 10 | - rating 11 | - machine learning 12 | - statistics 13 | quote: ' Around 95% of the code in these projects has been developed in F#' 14 | --- 15 | Around 95% of the code in these projects has been developed in F#. F# allowed for rapid development 16 | of prototypes, and thus also rapid verification or falsification of the underlying mathematical models. 17 | Complex algorithms, for example to compute Nash equilibria in game theory, can be expressed 18 | succinctly. Units of measure reduced the chance of errors dramatically: 19 | Prices, probabilities, derivatives, etc. can already be kept apart at compile time. 20 | -------------------------------------------------------------------------------- /_testimonials/alex-hardwicke.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: alex-hardwicke 3 | bullets: 4 | - Alex Hardwicke 5 | - Surge 6 | keywords: 7 | - apps 8 | - conciseness 9 | - torrent 10 | - winrt 11 | quote: Many languages are evolving to be ready for the future ... F# is already there. 12 | --- 13 | When starting to work with Microsoft's "Modern" WinRT apps, I started by taking the obvious route and used C#. This worked, and I wrote good, functional apps. Despite this, modern programming with C# has problems. I encountered these when writing my BitTorrent app, Surge, and eventually rewrote the app using F#. Doing this gave me better performance, fewer bugs and better user satisfaction. 14 | 15 | Users expect performant software with an always responsive UI, and frequently expect the apps to work with and display large amounts of data. This leads to us, as developers, working with complex data structures, detailed lists, and to use techniques like parallelism and asynchrony. C# has gained support for these over time, through things like Linq and async/await, but these are poor imitations of the original F# implementations and have flaws. 16 | 17 | Using a modern, functional language that provides first-class support for things we need in modern development is a no-brainer. Immutability-first as a programming technique has fixed more bugs and bad code in my applications than almost anything else I've ever looked at, and it's something C# will never gain. 18 | 19 | It's not just C#, either. Many languages are evolving to be ready for the future, adding features that support the needs of a modern programming language, but F# is already there. 20 | -------------------------------------------------------------------------------- /_testimonials/atalasoft.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: atalasoft 3 | bullets: 4 | - '**Atalasoft**' 5 | - '[source](http://www.atalasoft.com/cs/blogs/stevehawley/archive/2011/08/01/building-pure-managed-dotimage.aspx), [permalink](#atalasoft)' 6 | keywords: 7 | - algorithms 8 | - performance 9 | - immage processing 10 | quote: I evaluated F# and found that for certain tasks it was better than C# in terms of performance while maintaining suitable readability 11 | --- 12 | I evaluated F# and found that for certain tasks it was better than C# in terms of performance 13 | while maintaining suitable readability and for certain tasks, it leant itself better to certain 14 | algorithms (OctTree based color quantization stands out). ...we were able to heavily leverage inline functions in F#......Since each of 15 | these are inlines, the F# optimizer can actually do something useful with the code. By using F#, we were able to address this cost by using 16 | inlining, code profiling, scanline caching, memoization and other techniques. In many cases we ended up with 17 | code that ran in equivalent time to C++ code or in some cases faster. 18 | -------------------------------------------------------------------------------- /_testimonials/aviva-flying-frog-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: aviva-flying-frog-1 3 | bullets: 4 | - '**Large insurance company**' 5 | - '[source 1](http://stackoverflow.com/questions/952318/what-are-the-benefits-of-using-c-sharp-vs-f-or-f-vs-c), [source 2](http://www.quora.com/Which-organizations-use-the-F-programming-language-in-a-non-trivial-fashion/answer/Jon-Harrop-1), [permalink](#aviva-flying-frog-1)' 6 | keywords: 7 | - financial services 8 | - insurance 9 | - actuarial 10 | quote: Large insurance company developed an entire pension quote calculator entirely in F# in under 100 days with no prior F# experience at all... 11 | --- 12 | One of the world's largest insurance companies have F# code in production, are starting several 13 | more projects in F#. We are currently consulting for this company (£2.5bn profit) who have migrated 14 | some of their number crunching and business logic to F# and are so happy with the results 15 | (10x faster and 10x less code vs their Visual C++ 6) that they are proposing to migrate 1,600,000 lines of code to 16 | F#. In particular, their developers found F# easy to learn and use. 17 | 18 | ... my predecessor developed an entire pension quote calculator (typically scheduled to take 300-400 man days) 19 | entirely in F# in under 100 days with no prior F# experience at all. Performance is 10× 20 | better than the C++ that it replaces because the new code avoids unnecessary copying and exploits multicore 21 | parallelism. Part of my job here will be to give basic F# training to around 20 people and bring a few people up to expert level. 22 | 23 | In answer to "Can you give any evidence for 10x performance gain over C++?". The insurer's C++ 24 | code is a simple manual translation from very inefficient Mathematica code that suffers from several pathological 25 | performance problems mainly centered around excessive copying. The F# rewrite does not have these problem. 26 | The 10x performance gain was verified by the client. 27 | -------------------------------------------------------------------------------- /_testimonials/bayard-rock-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: bayard-rock-1 3 | bullets: 4 | - Bayard Rock 5 | keywords: 6 | - financial services 7 | - analysis 8 | - anti-money-laundering 9 | - counterparty risk 10 | - machine-learning 11 | quote: 'The benefits of functional programming in F# have given us a great advantage over our slow moving competitors. ' 12 | --- 13 | At Bayard Rock we work hard every day in the pursuit of new approaches towards anti-money-laundering. Before adopting F# there were often months of turnaround time between development of an idea and actually testing it on real data in our production environment. F#’s succinctness and composability allows us to rapidly iterate on ideas while the type system acts as a safety net. On top of this, it has the advantage of being a first class member of the .NET ecosystem and so integrates seamlessly with our Microsoft stack systems. This means that instead of months we can often see our ideas come to life in just days. 14 | 15 | The benefits of functional programming in F# have given us a great advantage over our slow moving competitors. After three years of using F# our products have consistently gotten significantly better each year without sacrificing stability. Our clients often are amazed by how we can quickly adapt to unique challenges and how we can find the bad guys hiding in their data much more effectively than anyone else. Little do they know that it’s largely thanks to our secret weapon, F#. 16 | -------------------------------------------------------------------------------- /_testimonials/bohdan-szymanik-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: bohdan-szymanik-1 3 | bullets: 4 | - '**Bohdan Szymanik**' 5 | keywords: 6 | - financial services 7 | - data 8 | - analysis 9 | quote: Bohdan ... shows F#'s use for performing aggregations over large datasets, taking advantage of CPU and IO parallelism 10 | --- 11 | Bohdan Szymanik, CTO at Kiwibank, is keen to show how he's been using F# for analysis tasks 12 | within the bank. He'll provide an intro to the language then show its use for performing 13 | aggregations over large datasets, taking advantage of CPU and IO parallelism, and data 14 | presentation through charting and image generation. 15 | -------------------------------------------------------------------------------- /_testimonials/boston-based-company.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: boston-based-company 3 | bullets: 4 | - '**Boston-based Financial Services Firm, Fixed Income**' 5 | keywords: 6 | - fixed income 7 | - trading 8 | - optimization 9 | - financial services 10 | quote: F# encourages Reason Driven Development that leads to virtually bug-free code 11 | --- 12 | We are using F# because it considerably increases speed of software development which is crucial 13 | for a small company with limited development resources. The most enjoyable feature of this language 14 | is that the developer can reason about the code instead of relying only on unit tests. 15 | I would say the language encourages Reason Driven Development methodology which leads to 16 | virtually bug-free code. F# as strongly typed functional language ideally fits for tasks our 17 | software solves – Fixed Income securities trading optimization. It is also very important that 18 | F# computation engine could be seamlessly integrated with other parts of .NET-based software product. 19 | -------------------------------------------------------------------------------- /_testimonials/byron-cook-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: byron-cook-1 3 | bullets: 4 | - '**Professor Byron Cook**' 5 | - Microsoft, [permalink](#byron-cook-1) 6 | keywords: 7 | - verification 8 | - algorithms 9 | - analysis 10 | - problem solving 11 | quote: 'F# is the night vision goggles I need when I go into the dark and attempt to solve previously unsolved problems. ' 12 | --- 13 | I’m one of the first users of F#, since 2004. In my work (e.g. SLAM, Terminator, Zapato, T2, etc) 14 | I find that F# is the night vision goggles I need when I go into the dark and attempt to solve 15 | previously unsolved problems. Everything becomes simple and clear when expressed in F#. 16 | -------------------------------------------------------------------------------- /_testimonials/calitime.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: calitime 3 | bullets: 4 | - Urs Enzler 5 | - Calitime AG 6 | keywords: [] 7 | quote: F# allow us to keep the code simple even in complicated business cases. 8 | --- 9 | TimeRocket is a service for attendance time tracking and absence- and shift-planning provided by Calitime AG. 10 | The system runs on Azure, and we use F# on the ASP.NET backend and Azure Functions to program the business logic. 11 | We like F# because discriminated unions, pattern matching, computation expressions and out-of-the-box equality allow us to keep the code simple even in complicated business cases. 12 | -------------------------------------------------------------------------------- /_testimonials/can-erten.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: can-erten 3 | bullets: 4 | - '**Can Erten**' 5 | - Codingday, Vector Code 6 | keywords: 7 | - osx 8 | - mac 9 | - code generation 10 | - cross-platform 11 | quote: F# is a powerful language and it is great to do cross platform development with it. 12 | --- 13 | Vector code is a code generator for iOS and OsX generating code in Objective C, Swift and C#. It works with vector graphics, parses and runs SVG. It is developed with F# on a Mac. 14 | 15 | F# is a first class language for Mac OsX. Thanks to the open source compiler, I was able to build a vector drawing, code generator software with F#. It is really amazing experience! The tooling is great and keeps improving. The compiler and the language are basically the same which is fantastic! 16 | 17 | F# is a powerful language and it is great to do cross platform development with it. I used heavily quotations for generating code in different languages on vector code. Powerful type system and static compilation meant that, once the application compiled without errors and warnings, it will just work and generate complete code. It did, and now at the App Store. 18 | -------------------------------------------------------------------------------- /_testimonials/cleartax.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: cleartax 3 | bullets: 4 | - '**Ankit Solanki, [ClearTax](https://cleartax.in)**' 5 | - '[ClearTax](https://www.youtube.com/watch?v=BYRpZ7qEMi0)' 6 | keywords: 7 | - startup 8 | - finance 9 | - taxation 10 | - type providers 11 | - functional programming 12 | quote: At ClearTax, We have built a whole product from the ground-up in F#. It's been running in production for a couple of years — this has been a great experience for us. 13 | --- 14 | The expressiveness and power of F# has resulted in shorter build cycles, simpler business logic (with fewer bugs!) and the ability to quickly evolve the product. 15 | 16 | Type Providers have let us add support for a lot of data formats (Government formats, Excel files, third party sources) very quickly. Pattern matching has made it possible to simplify complex business logic. F# has been a joy to work with, and we're using it more and more throughout our products now. 17 | -------------------------------------------------------------------------------- /_testimonials/cme-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: cme-1 3 | bullets: 4 | - Moody Hadi (CME Group) 5 | keywords: 6 | - imperative 7 | - functional 8 | - financial services 9 | - portfolio analysis 10 | quote: The efficient use of functional programming throughout the R&D cycle helped make the cycle faster and more efficient. 11 | --- 12 | The credit markets have varying pockets of liquidity. Market participants would like to understand how the 13 | liquidity of their set of entities changes relative to the overall market. A liquidity scoring model is 14 | needed to provide these metrics across the entire CDS universe. Functional programming and specifically 15 | F# was used in order to provide the market with a fast and accurate solution. ... The research and development cycle was made faster and more efficient by the effective use of 16 | functional programming. 17 | 18 | The efficient use of functional programming throughout the R&D cycle helped make the cycle faster and more efficient. 19 | Less time was spent on translating requirements, miscommunications etc and more on producing a fast and accurate solution quickly. 20 | 21 | Since programmers can understand your quant code they can focus on their core competency – developing fast and reliable production code. 22 | The development exercise becomes catered towards optimization, performance tuning and error handling (i.e. making the code reliable) 23 | Functionality is not lost from the prototype due to miscommunication or rather crude documentation/requirements, which saves time in testing. 24 | Mass regression testing is easy with precise precision level differences between the prototype and the production system. 25 | -------------------------------------------------------------------------------- /_testimonials/compositional-it.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: compositional-it 3 | bullets: 4 | - '**Isaac Abraham, Compositional IT**' 5 | - '[Compositional IT](http://compositional-it.com/)' 6 | keywords: 7 | - azure 8 | - consultancy 9 | - functional programming 10 | - time to market 11 | - startup 12 | quote: On a release of a complex rules engine and data transformation system to one of our customers, we were delighted to hear that across 90+ markets, not one of them found any issues with any of the calculations in the datasets. F# just works. 13 | --- 14 | As a consultancy geared towards delivering solutions to customers in a variety of sectors, we rely on F# for all of our solutions, whether it's a rules engine, a distributed and scalable data transformation system on Azure or a customer-facing web application. I love the fact that we have confidence in our deliverables thanks in no small part to the pit of success that F# leads us down; we very, very rarely encounted bugs that we saw time and again with other languages and frameworks. At the same time, we're able to consistently deliver to our customers much more quickly than we might have done otherwise - a key value proposition for many of our customers who often need a short time to market. 15 | -------------------------------------------------------------------------------- /_testimonials/credit-suisse-abstract.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: credit-suisse-abstract 3 | bullets: 4 | - '**Howard Mansell**' 5 | - Credit Suisse (at time of writing) 6 | - '[source: CUFP Workshop, 2008](http://cufp.org/archive/2008/abstracts.html#MansellHoward), [permalink](#credit-suisse-abstract)' 7 | keywords: 8 | - financial services 9 | - analysis 10 | - fixed income 11 | - derivatives 12 | - financial modelling 13 | quote: At Credit Suisse, we've been using F# to develop quantitative models for financial products 14 | --- 15 | Building valuation models for derivative trades requires rapid development of mathematical models, made possible by 16 | composition of lower-level model components. We have found that F#, with the associated toolset, provides a 17 | unique combination of features that make it very well suited to this kind of development. In this talk, I will explain how we 18 | are using F# and show why it is a good match. I will also talk about the problems we have had, 19 | and outline future enhancements that would benefit this kind of work. 20 | 21 | The abstract to [a talk at the Commercial Users of Functional Programming workshop](http://cufp.org/archive/2008/abstracts.html#MansellHoward) 22 | -------------------------------------------------------------------------------- /_testimonials/dario.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: dario 3 | bullets: 4 | - '**Dario**' 5 | - '[source](http://stackoverflow.com/a/952443), [permalink](#dario)' 6 | keywords: 7 | - domain modeling 8 | - immutability 9 | quote: '...your code is less error-prone...' 10 | --- 11 | You can formulate many problems much easier, closer to their definition and more concise in a 12 | functional programming language like F# and your code is less error-prone (immutability, more powerful type system, intuitive recurive algorithms). 13 | You can code what you mean instead of what the computer wants you to say ;-) Furthermore you 14 | can have F# and C# together in one solution, so you can combine the benefits of both 15 | languages and use them where they're needed. 16 | -------------------------------------------------------------------------------- /_testimonials/darren-platt-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: darren-platt-1 3 | bullets: 4 | - '**Darren Platt**' 5 | - Amyris Biotechnology 6 | - '[source](http://research.microsoft.com/en-us/events/2012summerschool/kenjifsharpfphdsummerschool2012new.pdf)' 7 | keywords: 8 | - biotechnology 9 | - units of measure 10 | - bioinformatics 11 | quote: F# rocks... building out various algorithms for DNA processing here and it's like a drug 12 | --- 13 | With F#... we have written a complete genome re-sequencing pipeline with interface, algorithms, 14 | reporting in ~5K lines and it has been incredibly reliable, fast and easy to maintain. 15 | 16 | F# rocks - we're building out various algorithms for DNA processing here and it's like a drug. Just 17 | implemented a suffix tree in 150 lines that can index 200,000 bases a second ;) We have probably 18 | 10-20K lines of code for many scientific applications ranging from a full genome sequencing 19 | pipeline that reconstructs and annotated yeast strains, to simulators for various processes 20 | and design tools for building DNA sequences/constructs. There are lab located apps that 21 | grab robot log files and move them to databases and a tool for viewing a huge collection of DNA sequencing data. 22 | 23 | F# has been phenomenally useful. I would be writing a lot of this in Python otherwise and F# is more 24 | robust, 20x - 100x faster to run and for anything but the most trivial programs, faster to develop. 25 | 26 | The UI work is especially gratifying, because state of the art for a lot of genomic data display 27 | is still PNG images embedded in JavaScript and with F# I can render half a million data points on 28 | a web page without jumping through hoops. 29 | 30 | With Units of Measure I started labelling the coordinates as one or zero based and immediately found a bug where I'd casually mixed the two systems. Yay F#! 31 | -------------------------------------------------------------------------------- /_testimonials/david-walker-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: david-walker-1 3 | bullets: 4 | - '**Prof David Walker**' 5 | - Princeton University 6 | - '[source](http://web.archive.org/web/20120410193300/http://www.tryfsharp.org/Experts.aspx), [permalink](#david-walker-1)' 7 | keywords: 8 | - teaching 9 | - research 10 | - cross-platform 11 | quote: 'F#...made it trivial... ' 12 | --- 13 | Our graduate course on Parallelism this Fall is full, even though it assumes no 14 | experience with functional programming or F#. The students are preparing the courseware 15 | themselves, and one of the topics we are studying is functional reactive programming (FRP) 16 | with continuous, time-varying behaviors. F#, with its rich graphics libraries, made it 17 | trivial to construct a super-fun assignment involving purely functional and interactive 18 | animation of a mock solar system. 19 | -------------------------------------------------------------------------------- /_testimonials/deyan-petrov.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: deyan-petrov 3 | bullets: 4 | - '**Deyan Petrov, [5G Pay](https://5gpay.com/)**' 5 | keywords: 6 | - simple 7 | - safe 8 | quote: F# brought correct defaults, simplicity and safety back to our coding 9 | --- 10 | A couple of years ago we started a greenfield project with backend (microservices) 100% written in F#. The language allowed/allows us to deliver a lot with a very small team, resulting in a concise and easily maintainable codebase. 11 | 12 | We are solely focusing on the basics - functions and records, and shying away from OOP or any other complicated constructs. Among the "exotic" features of F# we use are only a few [computational expressions](https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/computation-expressions) - Async, AsyncResult, Result, as well as the [units of measures](https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/units-of-measure) for strongly-typing GUIDs and other domain attributes. Even Dependency Injections we with straightforward [partial application](https://fsharpforfunandprofit.com/posts/partial-application/) unstead of using the sophisticated Reader monad or similar. 13 | 14 | Being a member of the .NET family F# still gives us access to .NET BCL and any (performance) improvements of it, as well as to all 3rd-party libraries written in C# (e.g. Azure SDKs, sftp, email clients and many others). 15 | 16 | Onboarding of new team members (usually with C# background) has been pretty easy and quick. 17 | -------------------------------------------------------------------------------- /_testimonials/dmitry-soshnikov-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: dmitry-soshnikov-1 3 | bullets: 4 | - '**Dmitry Soshnikov**' 5 | - Associate Professor, Moscow Aviation Technical University 6 | keywords: [] 7 | quote: There is a noticeable interest in the developer community in Russia towards F#. 8 | --- 9 | I do some samples in F# for the lectures and the book, but all that is within a single-user 10 | VS 2010 Pro installation. Right now we have a set of slides on functional programming with 11 | F# in Russian in the curriculum repository, and the video-course of functional programming 12 | using F# available in the largest Russian Internet-University (intuit.ru). The course 13 | is being taught in 2 universities. There is a noticeable interest in the developer community in 14 | Russia towards F#. 15 | -------------------------------------------------------------------------------- /_testimonials/doctors-lab.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: doctors-lab 3 | bullets: 4 | - '**Ben Lynch**' 5 | - The Doctors Laboratory 6 | keywords: 7 | - web 8 | - datascience 9 | - healthcare 10 | - etl 11 | quote: I could not recommend F# highly enough – I insist that you try it! 12 | --- 13 | The Doctors Laboratory is the largest independent provider of clinical laboratory diagnostic services in the UK. We use F# for the majority of our in house development, from ETL tasks, via reporting scripts to full web applications. 14 | 15 | F#’s idiomatic development style, starting with a script in the REPL, before moving functions into a more structured project, makes it trivial to explore different approaches, refactor &c. before committing to a particular approach. It also makes developing more enjoyable and direct – there’s no need to get all the boiler plate/plumbing in place; you can just create a script and start coding. The compiler’s type inference system also means quicker coding, with less ‘cruft’. Features such as pattern matching and discriminated unions also lead to leaner, more expressive and transparent code. 16 | 17 | Type providers mean data can be accessed in a few lines, and there are a wealth of community driven OSS projects available here for a heterogeneous range of data sources. If you need to access a data source not supported by existing providers, then the community positively encourages getting involved to provide one yourself, as in fact we did with the MSACCESS provider for the SQLProvider type provider. The community is first rate in terms of providing support in forums like Stack Overflow, gitter, etc. Other community projects such as Paket (dependency management) and FAKE (build too) make build automation a breeze, too. 18 | -------------------------------------------------------------------------------- /_testimonials/dsyme-ad-predict-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: dsyme-ad-predict-1 3 | bullets: 4 | - '**Don Syme**' 5 | - Principal Researcher, Microsoft 6 | - Eclipse Summit Europe 2009, [source](http://www.slideshare.net/lgayowski/taking-functional-programming-into-the-mainstream-eclipse-summit-europe-2009), slide 49 7 | keywords: 8 | - integration 9 | - machine learning 10 | - advertising 11 | - prediction 12 | quote: F#'s powerful type inference means less typing, more thinking 13 | --- 14 | F# was used on Microsoft's AdPredict project for adCenter. This was a 4 week project with 4 machine learning experts involving a model 15 | with 100 million probabilistic variables and processing 6TB of training data in real-time. 2 weeks of CPU time 16 | were used during training. Benefits included **Quick Coding** - F#'s powerful type inference means less typing, more thinking, 17 | **Agile Coding** - Type-inferred code is easily refactored, 18 | **Scripting** - "Hands-on" exploration, 19 | **Performance** - Immediate scaling to massive data sets, 20 | **Memory-Faithful** - Mega-data structures on 16GB machines, 21 | **Succinctness** - Live in the domain, not the language, 22 | **Symbolic** - Schema compilation and "Schedules" and **.NET Integration** - Especially Excel, SQL Server 23 | -------------------------------------------------------------------------------- /_testimonials/dylan-hutchinson-intern-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: dylan-hutchinson-intern-1 3 | bullets: 4 | - '**Dylan Hutchison**' 5 | - Microsoft Research (intern), Stevens Institute of Technology 6 | keywords: 7 | - DSL 8 | - Excel 9 | - machine learning 10 | - correctness 11 | quote: My team chose F# for its functional paradigm, maturity, and ease of interoperation with the .NET framework 12 | --- 13 | With an idea for a new domain specific language, my team chose F# for its functional paradigm, maturity, and ease of interoperation with the .NET framework. I wrote the language primitives in F#’s arsenal of data types (records, discriminated unions, a couple classes at the top level), implemented operations on the types using its hierarchy of modules, and turned our operations into a working demo in F# Interactive, all in about 10 days. 14 | 15 | I jumped for joy each time my code executed correctly on the first pass, and in the few cases it did not, debugging through Visual Studio felt natural and quick. As for .NET, integrating with Microsoft Excel was easy by importing the necessary DLLs, though Excel posed challenges beyond F#’s reach. Finally, I can verify that F# delivers a sense of correctness and safety, stronger than other languages I worked with in the past. It is reassuring to know your code will execute exactly as you intend. 16 | -------------------------------------------------------------------------------- /_testimonials/early-warning-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: early-warning-1 3 | bullets: 4 | - '**Stephen Channell**' 5 | - 'Cepheis Ltd ' 6 | keywords: [] 7 | quote: At a major Investment Bank, we used F# to build an Early Warning Indicator System for Liquidity Risk 8 | --- 9 | Early Warning Indicators is a standalone dashboard application to monitor real-time market 10 | movements and highlight potential risk for further analysis. EWI subscribed to real-time equity, 11 | Forex and commodity prices and needed to calculate Red/Amber/Green status in real-time for 12 | tolerance breaches and to generate dashboard reports as needed. 13 | 14 | The business wanted the flexibility to define formulas using Excel expressions, but spreadsheet 15 | components could not cope with the data-rate without conflation and management didn’t want a 16 | solution that relied on an Excel template and IT change control to add new indicators. 17 | 18 | F# was chosen for development productivity, performance of a cell framework implemented using 19 | computation expressions; ease with which Excel expressions could be parsed as a DSL and .NET 20 | integration with QALib, Market and timer-series data. 21 | 22 | Post implementation review highlighted that (given resource and time constraints) functionality 23 | would have been sacrificed without F# and its associated tooling. 24 | -------------------------------------------------------------------------------- /_testimonials/emea.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: emea 3 | bullets: 4 | - EMEA-based Security Solutions Company 5 | keywords: 6 | - security 7 | - integration 8 | quote: '...we have decided to use F# as our functional language to have automatic integration with rest of the system...' 9 | --- 10 | We develop security product to protect critical infrastructure (e.g. Oil Refinery, Airport, etc) for countries across 11 | the globe.... In core of our product there are prediction algorithms. We use different modeling and theorems 12 | (Monte Carlo, Action, etc) to implement the prediction components. ... Since we are rewriting our next generation product 13 | using .NET, we have decided to use F# as functional language to have automatic integration with rest of the system. ... We 14 | also have advanced machine learning components (Artificial Intelligence) and functional languages are the 15 | best fit to write AI stuff. We are planning to use F# as the primary programming language in this 16 | area because of its interoperability with .NET. 17 | -------------------------------------------------------------------------------- /_testimonials/financial-services-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: financial-services-1 3 | bullets: 4 | - '**Large Financial Services Firm, Europe**' 5 | - '[source](http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000006794), [permalink](#financial-services-1)' 6 | keywords: 7 | - financial services 8 | - financial modelling 9 | - derivatives 10 | - fixed income 11 | quote: With its new tools, the bank can speed development by 50 percent or more, improve quality, and reduce costs. 12 | --- 13 | A large financial services firm in Europe sought new development tools that could cut costs, boost productivity, 14 | and improve the quality of its mathematical models. To address its needs, the bank deployed F#, the 15 | .NET Framework, and Visual Studio. It will soon upgrade to Visual Studio 2010 and then integrated 16 | F#. With its new tools, the bank can speed development by 50 percent or more, improve quality, and reduce costs. 17 | -------------------------------------------------------------------------------- /_testimonials/giuseppe-maggiore.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: giuseppe-maggiore 3 | bullets: 4 | - '**Giuseppe Maggiore**' 5 | keywords: 6 | - games 7 | quote: I can tell you, F# really saved us a ton of effort. 8 | --- 9 | I am the lead developer of Galaxy Wars, and I can tell you, F# really saved us a ton of effort. 10 | Monadic coroutines alone I believe are the reason why we manage to ship the thing on time... 11 | -------------------------------------------------------------------------------- /_testimonials/grange-insurance-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: grange-insurance-1 3 | bullets: 4 | - '**Grange Insurance**' 5 | keywords: 6 | - insurance 7 | - parallelization 8 | - financial services 9 | quote: Grange Insurance parallelized its rating engine to take better advantage of multicore server hardware 10 | --- 11 | For nearly 75 years, Grange Insurance has offered competitive products and services to policyholders 12 | in more than a dozen U.S. states. To maintain its well-earned reputation and standing, the company decided to 13 | enhance its rating engine—a software tool for rating policies and performing what-if modeling, impact analyses, 14 | and other vital activities. Working with the Sophic Group and using the Microsoft Visual Studio Team System development 15 | environment and F# programming language, Grange Insurance parallelized its rating engine to take 16 | better advantage of multicore server hardware, and in so doing garnered significant performance benefits. 17 | Processes that used to require hours now take just minutes, enabling the company to trim time-to-market 18 | by weeks and making it far easier for independent agents to sell and service Grange products. 19 | -------------------------------------------------------------------------------- /_testimonials/green-eagle-solutions.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: green-eagle-solutions 3 | bullets: 4 | - '**Green Eagle Solutions**' 5 | keywords: 6 | - energy 7 | - renewable 8 | - scada 9 | - scripting 10 | - literate programming 11 | quote: F# terse syntax made the final code look really similar to the algorithm we wrote at first 12 | --- 13 | At Green Eagle Solutions, we develop control systems for renewable energy plants. Thus, it's crucial for us to test our software in a real-time environment where are all the other actors (protocols, weather conditions, legacy software) come into play. 14 | 15 | Beforehand, we used Python to quickly build simulators to test our components. With F# we have now all the advantages of a dynamic language, while keeping the static typing safety we are used to. The fact that we don't need to leave Visual Studio and being able to seamlessly use all the APIs we have developed in C# are also a big plus. 16 | 17 | We have also started to use F# directly in our components to implementing the core logic, while leaving C# to networking tasks. We've taking advantage of this language mix to create a dependency injector which recompiles the F# logic at runtime whenever the script changes for quick development iterations, but loads a precompiled .dll when deployed in production. The double nature of F# as a scripting and a compiled language really shines here. 18 | 19 | F#'s terse syntax made the final code look really similar to the algorithm we wrote at first in formal language. Also, we've come to really appreciate the numerous metaprogramming libraries in the F# ecosystem: we particularly like FSharp.Formatting and have started to adopt the literate programming style to integrate as much as possible the code and the documentation and prevent them losing sync. 20 | -------------------------------------------------------------------------------- /_testimonials/hans-rischel.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: hans-rischel 3 | bullets: 4 | - '**Hans Rischel**' 5 | - Former teacher of computer science at the Technical University of Denmark 6 | keywords: [] 7 | quote: Solving a number of programming problems using the language convinced me of the supreme qualities of F# 8 | --- 9 | I was approached by my former colleague Michael (Michael R. Hansen) in autumn 10 | 2010 where he proposed that we should write a new textbook on functional 11 | programming - now using the F# programming language. To begin with I was quite 12 | sceptical about using a programming language appearing as part of a Microsoft 13 | program package. Solving a number of programming problems using the language 14 | convinced me, however, of the supreme qualities of F# - and we embarked on 15 | the project of getting acquainted with F# and writing the textbook. 16 | 17 | Michael and I spent considerable time solving traditional programming 18 | problems in F#. A combination of functional and imperative F# with an 19 | occasional pinch of OO gives a very pleasing platform for program 20 | development - once you have found your way through the wilderness of MSDN 21 | documentation (newcomers to the MSDN world may benefit from the 22 | MSDN library documentation found on the [web-site of the book](http://www2.compute.dtu.dk/~mire/FSharpBook/index.html). 23 | All of Chapter 10 and part of Chapter 11 present program examples using 24 | this programming style. 25 | 26 | Computation expressions look esoteric to begin with, but they are actually 27 | rather useful. We spent much time 28 | trying to get this concept down to earth, with the purpose of making it accessible 29 | to simple-minded people like ourselves. The reader may judge how far we 30 | succeeded by studying Chapter 12 of the book. 31 | 32 | Writing this textbook with Michael has been an exciting experience. 33 | -------------------------------------------------------------------------------- /_testimonials/horspool-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: horspool-1 3 | bullets: 4 | - '**Prof Nigel Horspool**' 5 | - University of Victoria, Canada 6 | - '[source](http://web.archive.org/web/20120410193300/http://www.tryfsharp.org/Experts.aspx), [permalink](#horspool-1)' 7 | keywords: 8 | - teaching 9 | - research 10 | quote: When F# is combined with Visual Studio... productivity goes through the roof! 11 | --- 12 | F# programs tend to be much shorter than their equivalents in other languages. The 13 | fewer lines of code required, of course, the higher the productivity. When F# is combined 14 | with Visual Studio, which provides help with remembering the methods attached to different 15 | data types and how to use those methods, productivity goes through the roof! 16 | -------------------------------------------------------------------------------- /_testimonials/insurello.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: insurello 3 | bullets: 4 | - '**Kristian Lundström & Simon Lydell**' 5 | - Software Engineers 6 | - '[Insurello](https://www.insurello.se/)' 7 | - '[source](https://github.com/fsharp/fsharp.org/pull/918)' 8 | keywords: 9 | - domain modeling 10 | - type system 11 | - maintainability 12 | - insurtech 13 | - claims management 14 | quote: The compiler and the use of exhaustive pattern matching have saved us from what could’ve been many mistakes in production. 15 | --- 16 | At Insurello, F# lets us model complicated business data with a lightweight syntax in a way that feels closer to reality. The type system helps us avoid creating impossible states and enables us to focus on the business problems. The compiler and the use of exhaustive pattern matching have saved us from what could’ve been many mistakes in production. F# is “just the right amount of FP” which helps us write simple and maintainable code and makes it easy to onboard people, even those with no background in Functional Programming. 17 | -------------------------------------------------------------------------------- /_testimonials/james-moore.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: james-moore 3 | bullets: 4 | - James Moore 5 | - Senior Software Developer 6 | - Digium, Inc 7 | keywords: 8 | - iOS 9 | - Android 10 | - Xamarin 11 | - reactive 12 | quote: Using F# for cross-platform mobile development (Android, iOS) saves development time 13 | --- 14 | We wanted to develop our Android and iOS applications using as much shared code as possible. 15 | We built a reactive architecture using F# actors (aka mailbox processors) to build a very robust 16 | multithreaded system that was easily portable between Android and iOS. 17 | 18 | Our F# actors (shared across iOS and Android) expose .Net IObservables that are consumed by UI systems written for the native platforms. 19 | Dividing the system in that way allowed for testable multithreaded code that would have been difficult to write in other .Net languages. 20 | -------------------------------------------------------------------------------- /_testimonials/jared-parsons-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: jared-parsons-1 3 | bullets: 4 | - '**Jared Parsons**' 5 | - '[source](http://stackoverflow.com/a/2785476), [permalink](#jared-parsons-1)' 6 | keywords: 7 | - learning 8 | - conciseness 9 | quote: '...I have to say I love the language...' 10 | --- 11 | Over the last 6 or so months, I've been working on a Vim emulation layer. This is the first major project I've ever done with F# 12 | and I have to say I love the language. In many ways I used this project as a method of learning 13 | F# (and this learning curve is very much evident if you look through the history of the project). 14 | What I find the most amazing about F# is just how concise of a language it is. The Vim engine comprises 15 | the bulk of the logic yet it only comprises 30% of the overall code base. 16 | -------------------------------------------------------------------------------- /_testimonials/jon-canning.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: jon-canning 3 | bullets: 4 | - '**Jon Canning**' 5 | - Property To Renovate 6 | keywords: [] 7 | quote: Type providers made working with external data sources simple and intuitive. 8 | --- 9 | Every day we analyze data for hundreds of thousand of properties, sourced from XML and JSON feeds. Features such as Options and Type Providers have given us incredibly concise, expressive, and testable code with which to handle them, freeing us to focus on business value. 10 | 11 | As a developer moving from C#, some of the concepts you read about functional programming can be difficult to grasp and the barrier to entry appears high. However, with just a basic understanding and a helpful and welcoming community, F# has proven to be very productive and has quickly become my language of choice. 12 | -------------------------------------------------------------------------------- /_testimonials/jorge-fioranelli.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: jorge-fioranelli 3 | bullets: 4 | - '**Jorge Fioranelli**' 5 | keywords: 6 | - commercial 7 | - website 8 | - azure 9 | - domain-driven design 10 | - mvc 11 | quote: F# allowed us to mix Domain-Driven Design, Functional Programming and Azure to deliver a high quality web application. 12 | --- 13 | The site amancai.com.au was built combining F#, Domain-Driven Desing, Asp.Net MVC and Azure. F# was an excellent choice as it allowed us to keep the code lean and very functional while having full access to the BCL, Azure and third party libraries. 14 | 15 | Using F# Type Providers also helped us to improve our productivity and find problems early during the development process. 16 | 17 | I personally enjoyed the experience of building the entire system using F#, I believe its "functional-first" approach is excellent for building a wide range of applications. 18 | -------------------------------------------------------------------------------- /_testimonials/jozef-rudy.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: jozef-rudy 3 | bullets: 4 | - '**Jozef Rudy, PhD**' 5 | - Founder 6 | - '[CryptoQuant](https://www.cryptoquant.dev)' 7 | keywords: 8 | - startup 9 | - fintech 10 | - trading 11 | - cryptocurrencies 12 | quote: F# is more flexible than C#, yet gives stronger type safety. It allows for fearless refactoring, which is also easier because of naturally less coupled code while at the same time codebase being 40%-size of equivalent c# one. 13 | 14 | --- 15 | I first ventured into F# while working at a US-based startup where one of our servers handling PnL calculations was performing sub-optimally. 16 | I decided to re-write that in F# as a test. I was surprised that without requiring any special libraries (unlike the Python version that relied on pandas and numpy) the F# code was similarly concise yet significantly more performant. 17 | 18 | When I started [CryptoQuant](https://cryptoquant.dev), which allows backtesting and live testing of trading strategies on cryptocurrencies, I started writing just the trading rule parser in F#. 19 | 20 | The illustration of the first version of the parser can be found on my public git [repo](https://github.com/jozefRudy/trading-rule-parser). 21 | It parses subset of Typescript into F# interpretable AST, which can later be evaluated against data to calculate entry/exit signals. 22 | 23 | Because parsing with Fparsec went so well I later gradually migrated entire project into F# (from C#). 24 | The beauty of this approach is that I don't need any specialized F# libraries - I can stay very close to the original (C#) dotnet server, avoiding dependency on specialized F# third-party packages. 25 | I can still use great dotnet server features like background jobs or dependency injection. 26 | -------------------------------------------------------------------------------- /_testimonials/kaggle-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: kaggle-1 3 | bullets: 4 | - '**Kaggle**' 5 | keywords: 6 | - data science 7 | - machine learning 8 | - startup 9 | quote: The F# code is consistently shorter, easier to read, easier to refactor and contains far fewer bugs. As our data analysis tools have developed ... we've become more productive. 10 | --- 11 | At Kaggle we initially chose F# for our core data analysis algorithms because of its expressiveness. 12 | We've been so happy with the choice that we've found ourselves moving more and more of 13 | our application out of C# and into F#. The F# code is consistently shorter, easier to read, 14 | easier to refactor, and, because of the strong typing, contains far fewer bugs. 15 | 16 | As our data analysis tools have developed, we've seen domain-specific constructs 17 | emerge very naturally; as our codebase gets larger, we become more productive. 18 | 19 | The fact that F# targets the CLR was also critical - even though we have a large existing 20 | code base in C#, getting started with F# was an easy decision because 21 | we knew we could use new modules right away. 22 | -------------------------------------------------------------------------------- /_testimonials/lemball-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: lemball-1 3 | bullets: 4 | - '**Matt Ball**' 5 | - Liz Earle Beauty Co. Ltd 6 | keywords: 7 | - retail 8 | - e-commerce 9 | - ETL 10 | - web services 11 | - soa 12 | - correctness 13 | quote: The results speak for themselves. 14 | --- 15 | As a business we actively seek improvement every single day. This is the same for our IT systems, 16 | so we have been searching for a means to do that in our in-house software systems. 17 | 18 | The F# type system has allowed us to do this - by eliminating null references, increasing type 19 | safety and creating rich domain models that help us express hard-and-fast business rules in a 20 | way that we can really lean on the compiler; while actually reducing our total lines of code 21 | (and noise!). Doing so has reduced both our requirement for expensive bug hunts in our 22 | production systems, and the overall cost of maintaining unnecessary code complexity. 23 | 24 | We have been evaluating F# for a year now, and have components in our production systems that 25 | have been bug-free since deployment. The results speak for themselves. 26 | -------------------------------------------------------------------------------- /_testimonials/london-based-company.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: london-based-company 3 | bullets: 4 | - '**London-Based Asset Management Company**' 5 | keywords: 6 | - data 7 | - analysis 8 | - calculation 9 | - financial services 10 | - derivatives 11 | quote: ' I keep being surprised by how compact and readable F# is...' 12 | --- 13 | We have set up a complete risk management system that combines several data sources, presents them in a ... 14 | WPF user interface, and does a LOT of calculation behind the scenes. When the calculation 15 | requires a proper algorithm (i.e. anything that is more complex than a simple for loop), 16 | our choice has been F#. I have to say I keep being surprised by how compact it is and, nonetheless, 17 | how readable it is even when I'm reading code that I hadn't looked at or thought about for six months. 18 | -------------------------------------------------------------------------------- /_testimonials/lula.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: lula 3 | bullets: 4 | - '**Matt McCarty**' 5 | - Staff Software Engineer 6 | - '[Lula](https://www.lula.is/)' 7 | keywords: 8 | - API 9 | - domain modeling 10 | - insurance 11 | quote: The sensible defaults (immutability, non-nullability, algebraic data types, etc.) along with the power of the F# compiler enables our team to quickly and concisely develop systems. 12 | --- 13 | At Lula, we have found F# to be an excellent choice for building domain-driven APIs to service the insurance industry. The sensible defaults (immutability, non-nullability, algebraic data types, etc.) along with the power of the F# compiler enables our team to quickly and concisely develop systems. The developer experience and tooling is top-tier and the ecosystem is rich and vast, thanks to F# targeting the .NET platform. In addition, the nature of the type system moves an entire class of errors from being runtime errors to compile-time errors. 14 | 15 | I would recommend any software engineer that cares about their craft to take the time and learn F#...not only will it make you a better developer, you will have some fun along the way! 16 | -------------------------------------------------------------------------------- /_testimonials/mangel-maxime.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: mangel-maxime 3 | bullets: 4 | - '**Maxime Mangel**' 5 | keywords: [] 6 | quote: Using a full F# stack to provide Server, Browser client and Mobile apps. 7 | --- 8 | Since I started programming, I tested a lot of languages. I used PHP, JavaScript, C#, Elm, Lua, etc. And now I am using F# for all my projects. Since I discovered F# I've just found the language that I searched for so long as it has a lot of possibilities. 9 | 10 | The tooling for the language is great and also this language is really supported by is community and I love that. 11 | 12 | And finally, F# is a language with which I've become really efficient and I find that if I write a code the type inference assures me correctness. I am still waiting for the first bug to appear in my production app. 13 | -------------------------------------------------------------------------------- /_testimonials/maria-gorinova.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: maria-gorinova 3 | bullets: 4 | - '**Maria Gorinova**' 5 | keywords: 6 | - verification 7 | - logic 8 | - static analysis 9 | - termination analysis 10 | quote: Programming in F# feels like writing out ideas rather than code 11 | --- 12 | When I started working on the T2 temporal logic prover, I knew little about termination analysis and formal verification. F# made it easy to dive into these concepts and boosted my productivity by allowing me to write clean, concise, and accurate programs. Its functional nature, clear syntax and type inference is combined with the flexibility to write in an imperative style and use the .NET framework. This combination powerfully bridges the gap between thinking about a concept and implementing it. Programming in F# feels like writing out ideas rather than code. 13 | -------------------------------------------------------------------------------- /_testimonials/mario-pereira.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: mario-pereira 3 | bullets: 4 | - '**Mário Pereira**' 5 | - Microsoft Student Partner (MSP) 6 | - Faculty of Sciences, University of Oporto 7 | keywords: [] 8 | quote: Everyone gets really amazed when they try F# and experience its immense expressive power 9 | --- 10 | I have been a Microsoft Student Partner (MSP) for three years, which 11 | offered me the opportunity to be in touch with most portuguese 12 | faculties and their students, getting the change to be a bit of an 13 | evangelist for Microsoft technologies. I chose to spent my MSP 14 | experience giving introductory seminars to F# and functional 15 | programming using F#. So far, I have given these presentations on most 16 | portuguese faculties and also at Microsoft portuguese headquarters. The 17 | result is always the same: everyone gets really amazed when they try 18 | F# and experience its immense expressive power, its delightful 19 | syntax and realize they can do functional programming (which is 20 | oftenly taken as something boring and complicated) on a familiar and 21 | confortable environment. Currently, along with a fellow portuguese 22 | MSP, (following the success of previous presentations and in response 23 | to the many requests for new sessions on F#) I'm preparing an hands-on session on the use of F# for 24 | Cryptography, to be presented on a future event at Microsoft Portugal. 25 | 26 | Personally, F# offers me a solid and trustable ground to develop 27 | reliable and complex applications on a confortable and succinct way, 28 | impossible to achieve with other languages and paradigms. With no 29 | doubt, I can say I'm a huge fan of F# and I'm always eager to get in 30 | touch with every new feature the language has to offer. 31 | -------------------------------------------------------------------------------- /_testimonials/mauricio-scheffer.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: mauricio-scheffer 3 | bullets: 4 | - '**Mauricio Scheffer**' 5 | keywords: 6 | - web 7 | - domain modelling 8 | quote: With F# I can develop libraries in a fraction of the time. 9 | --- 10 | I’ve been using F# libraries in otherwise mostly C# / VB.NET web applications. Thanks to the conciseness of F#, I can develop these libraries in a fraction of the time, then I consume them from C# and VB.NET just like any other library. 11 | 12 | Furthermore, F#’s succinct syntax and REPL make it an excellent scripting language and good for data exploration. Thanks to F#’s interoperability the scripts can easily use domains and libraries written in C#. You never need to start from scratch or have to reinvent things. 13 | 14 | Language features like record types, discriminated unions and type inference also make F# a great language for prototyping. I often prototype new business domains in F# with a few simplified use cases to refine it. The simple syntax allows me to focus on developing the domain and iterate more quickly. Then, when company policy requires it, I translate it to C# which is usually a straightforward process that ends up with many times more lines of code (yet still perfectly maintainable). 15 | -------------------------------------------------------------------------------- /_testimonials/miccrosoft-engineering-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: miccrosoft-engineering-1 3 | bullets: 4 | - Microsoft Engineering Team 5 | keywords: 6 | - tools 7 | - engineering 8 | - debugging 9 | - builds 10 | - static analysis 11 | quote: In our engineering group at Microsoft we use F# for several projects 12 | --- 13 | In our internal engineering group at Microsoft, F# is used for several important tools: 14 | 15 | * analyzing feedback on the web to look for compatibility-related issues, 16 | * a static code analyzer to detect compatibility regressions in a product, 17 | * a delta-debugging tool to help root cause regression analysis in product builds. 18 | -------------------------------------------------------------------------------- /_testimonials/michael-hansen.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: michael-hansen 3 | bullets: 4 | - '**Michael R. Hansen**' 5 | - Associate Professor, Technical University of Denmark 6 | keywords: [] 7 | quote: The simple, well-designed and powerful core of the language was perfect for introducing the fundamental concepts of functional programming. 8 | --- 9 | Producing an [F#-based book](http://www2.compute.dtu.dk/~mire/FSharpBook/index.html) on functional programming has been a fantastic experience. 10 | 11 | Using this material in an [F#-based course](http://www.compute.dtu.dk/courses/02157) 12 | introducing the fundamental concepts of functional programming has 13 | been a delightful experience as well. The simple, 14 | well-designed, yet powerful, core of the language was perfect for 15 | that purpose and, to our surprise, the transition from using SML 16 | to using F# actually made the tooling easier for students no 17 | matter which platforms they used. 18 | 19 | Furthermore, F# with it rich runtime environment has proved to be 20 | an excellent programming platform in research applications and in 21 | a more advanced course aiming at showing the role of functional 22 | programming in a broad variety of applications ranging from 23 | computer science applications to more real-life applications. In 24 | the first version of this course, given together with Anh-Dung Phan, 25 | the students completed three projects in three weeks: One being an 26 | interpreter for a rich imperative programming language, 27 | another being implementation, application and analysis of a 28 | functional pearl, and the last being a curriculum planning system 29 | for studies at the Technical University of Denmark. 30 | -------------------------------------------------------------------------------- /_testimonials/microsoft-narwhal-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: microsoft-narwhal-1 3 | bullets: 4 | - '**Rob Fatland**, Microsoft Research' 5 | keywords: 6 | - visualiztion 7 | - astronomy 8 | - oceanographic research 9 | - Microsoft 10 | quote: '...We use F# in oceanographic research to connect multiple visualizations together in time and space...' 11 | --- 12 | We use F# in oceanographic research to connect multiple visualizations together in time and space, which is map-plane location and depth. We began by building our Narwhal Developers Library for Layerscape 13 | in C# with emphasis on visualizing flow lines and understanding drift experiment data. These data are quite complex, involving physical ocean state and measurement of microbial metabolic processes, consolidating remote sensing and passive drifters, and adding to all this current measurements with the tracks of autonomous robots. Our technical term for the visualization challenge is ‘horrible’. 14 | 15 | To cope with the horrible we began adding F# scripts; and this has been extremely productive, particularly in morphing ideas about data exploration into real tools quickly. Our most interesting achievement to date is to wire a chart into a 4D visual environment. The set-up is like this: The scientist sees two views of the data: First color coded structure in a curtain plot of time versus depth (chlorophyll coded as color for example), and second this same data time-boxed in the dynamic Worldwide Telescope (WWT) visualization engine. F# is used to wire them together: Left click (and drag) in the chart to scroll the WWT clock back and forth. Right-click + drag in the chart to select a subset of the data which is then used to construct a new (small) advection visualization. Because the selected pieces are small and chosen interactively we get around the horrible problem of seeing everything at once. It is like seeing an entire forest and making all but a few curious trees vanish. So F# has been a great way to make rapid progress, and fun to learn as well. 16 | -------------------------------------------------------------------------------- /_testimonials/microsoft-quantum-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: microsoft-quantum-1 3 | bullets: 4 | - '**Dave Wecker**' 5 | - Microsoft Advanced Strategies and Research 6 | keywords: 7 | - simulation 8 | - quantum 9 | - Microsoft 10 | - modelling 11 | quote: F# is central to Microsoft’s quantum algorithm research 12 | --- 13 | F# is central to Microsoft’s quantum algorithm research. The LIQUi|⟩ simulator (Language 14 | Integrated Quantum Operations) presents an extension of F# that presents a 15 | seamless integration of classical and quantum operations. The scale and efficiency 16 | of the simulator allows it to handle among the largest entangled 17 | systems of qubits (quantum bits) ever modeled utilizing a targeted linear algebra package 18 | written entirely in F#. In addition, the modular architecture allows users to 19 | easily extend the system in any desired research direction. The base library is 20 | well over 20,000 lines of code and implements a wide range of modules including 21 | circuits, molecular modeling, spin-glass systems, quantum error correction, machine 22 | learning, factoring and many others. The system runs in client, server and cloud 23 | environments. It is also designed to be used as an educational tool and we have 24 | found that bringing new users up to speed is a quick and painless process. 25 | -------------------------------------------------------------------------------- /_testimonials/namigop.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: namigop 3 | bullets: 4 | - '**namigop** (Erik Araojo)' 5 | keywords: 6 | - security 7 | - cryptography 8 | - student 9 | - academia 10 | quote: it is fun language to code in 11 | --- 12 | I've written two commercial apps in F#, WcfStorm.Rest and WcfStorm.Server. 13 | The UI part was in C# and the library part was in F#. In my experience it is fun language to code in. 14 | -------------------------------------------------------------------------------- /_testimonials/oconnors-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: oconnors-1 3 | bullets: 4 | - Jack Mott 5 | - O'Connor's Online 6 | - '[Case study](https://www.oconnors.com/)' 7 | keywords: 8 | - web application 9 | - caching 10 | - redis 11 | - legal research 12 | - oconnors 13 | - azure 14 | - asp.net 15 | quote: F# was so easy to pick up we went from complete novices to having our code in production in less than a week. 16 | --- 17 | As an experiment to evaluate functional programming as a production tool we developed a 18 | new multi level caching system for our website in F#. Because F# can use existing C# 19 | libaries so easily we were able to proceed rapidly using popular packages such as 20 | StackExchange.Redis and ProtoBuf-Net. In less than a week we had a flexible caching 21 | system in production, complete with an administration page and performance statistics 22 | tracking. 23 | 24 | We also found that it was straightforward to use our new F# module from within our 25 | existing C# code, and that the F# code deployed to and ran as an Azure app service 26 | without any special configuration. Adding F# to the code base was completely painless. 27 | 28 | The developers on our team are all intrigued by F# and eager to learn more. As well, 29 | we find that at college recruiting events, prospective students are very excited to hear 30 | that we are using a functional language in production 31 | -------------------------------------------------------------------------------- /_testimonials/path-of-go.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: path-of-go 3 | bullets: 4 | - '**Microsoft**, **Path of Go**' 5 | - '[video source](http://www.youtube.com/watch?v=bb4igmbv_Oc), [permalink](#path-of-go)' 6 | keywords: 7 | - artificial intelligence 8 | - statistics 9 | - machine learning 10 | - TrueSkill 11 | quote: '...The AI is implemented in F#...' 12 | --- 13 | Path of Go is powered by three technologies...: an AI capable of playing Go, the F# language, 14 | and TrueSkill to match online players. The AI is implemented in F# and meets the challenge of 15 | running efficiently in the .net compact framework on Xbox 360. This game places you in a number of 16 | visually stunning 3D scenes. It was fully developed in managed code using the XNA environment. 17 | -------------------------------------------------------------------------------- /_testimonials/peter-sestoft-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: peter-sestoft-1 3 | bullets: 4 | - '**Prof. Peter Sestoft**' 5 | - IT University of Copenhagen 6 | keywords: 7 | - teching 8 | - research 9 | - cross-platform 10 | quote: "...That's the reason we have chosen F# for our undergraduate functional programming class..." 11 | --- 12 | F# has a beautiful, simple but expressive language at its core, and many powerful features 13 | built around that core language. It can draw on all the power of the .NET libraries, 14 | and runs on Windows, MacOS and Linux. That's the reason we have chosen F# for our 15 | undergraduate functional programming class as well as our 16 | undergraduate programming language class [(link)](http://www.itu.dk/people/sestoft/plc/) 17 | -------------------------------------------------------------------------------- /_testimonials/prolucid.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: prolucid 3 | bullets: 4 | - '**Eugene Tolmachev, Prolucid**' 5 | keywords: 6 | - energy 7 | - medical 8 | - scada 9 | - iot 10 | - cloud 11 | quote: Anyone who has developed software can appreciate that while a working program is an asset the source code is a liability, especially when working in a regulated industry. F# lets us keep the codebase small and agile while delivering feature-rich and proven to work solutions. 12 | --- 13 | Prolucid delivers solutions to customers in markets ranging from Medical Devices, Aerospace & Defence, Nuclear & Energy, Transportation to Advanced Manufacturing. 14 | 15 | Our E2C reference architecture has been developed around small F# core and offers platform independence, linear scalability and easy of customization. F# allowed us to leverage the .NET expertise many of us had and combine it with the elegance of functional programming to provide real-time connectivity, event processing and complex analytics solutions for out customers. 16 | 17 | We have open-sourced some of this work and you can find it on [GitHub](https://github.com/prolucid). 18 | -------------------------------------------------------------------------------- /_testimonials/reminder-hero.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: reminder-hero 3 | bullets: 4 | - '**Marty Dill**' 5 | - '**Reminder Hero**' 6 | keywords: 7 | - data 8 | - parsing 9 | - processing 10 | - readability 11 | quote: The power and flexibility of the language lets us ship features faster, with fewer bugs. 12 | --- 13 | All of our back-end data processing and parsing is done in F#. The power and flexibility of the 14 | language lets us ship features faster, with fewer bugs. Regressions are virtually nonexistent, and the 15 | functional nature of the language makes it easy to ensure that our code is testable. 16 | 17 | Our first iterations were written in C#, but after switching to F#, we saw a drastic reduction in code size, 18 | along with an increase in readability. We'll definitely be sticking with F# for all of our future projects. 19 | -------------------------------------------------------------------------------- /_testimonials/robert-boissy.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: robert-boissy 3 | bullets: 4 | - '**Dr. Robert Boissy**' 5 | - Assistant Professor 6 | - University of Nebraska Medical Center 7 | keywords: 8 | - bioinformatics 9 | - genomics 10 | - health 11 | - molecular analysis 12 | - simulation 13 | quote: Many attributes of the F# programming language make it an ideal choice for ...the exponentially growing volumes of molecular analysis data 14 | --- 15 | I am involved in bioinformatics and computational genomics as a faculty member at the 16 | University of Nebraska Medical Center (UNMC). In an academic medical center like UNMC there 17 | are heavy demands on my time and a wide range of different types of research projects that 18 | I can end up working on. I have used the F# programming language 19 | for several of these projects, including one that involved a very productive 20 | collaboration with IntelliFactory and the use of WebSharper. 21 | You can visit the resulting [web site](http://app1.unmc.edu/fgx) and read the freely 22 | available peer-reviewed scientific publication that describes the important 23 | [infectious disease research](http://mbio.asm.org/content/4/1/e00537-12.long) 24 | that this F# software development project facilitates. I am always interested in 25 | opportunities to work with professional software development enterprises whose teams include 26 | developers with F# expertise, because I believe that many attributes of the F# programming 27 | language make it an ideal choice for the development of software solutions that integrate 28 | Electronic Health Record (EHR) data and the exponentially growing volumes of molecular analysis 29 | data that can now be obtained from individual patients (e.g., personal genome DNA sequencing data). 30 | 31 | There's an exciting future for F# in this huge, emerging, data-rich health care market. 32 | -------------------------------------------------------------------------------- /_testimonials/simao-sousa-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: simao-sousa-1 3 | bullets: 4 | - '**Simão Sousa**' 5 | - University of Beira Interior, Portugal 6 | keywords: 7 | - teaching 8 | - research 9 | - cross-platform 10 | quote: F# is very popular among my students for the programming projects 11 | --- 12 | I teach and use OCaml and F# in my lectures (Theory of Computation, Formal Languages and Compiler 13 | Design, Formal Methods, Applied Cryptography), and F# is very popular among my students for the 14 | programming projects. Most of the students that are supervised by me (undergraduate, master 15 | but also PhD) use F# as the underlying programming language. This is even more the case now since 16 | part of our research directions includes working on cloud/distributed systems. 17 | 18 | F# and its programming environment leverage with no doubt the ability and the productivity of my 19 | students. This is, in my opinion, for two main reasons. First, F# allows the student, but also the 20 | researcher like me, to focus on the key aspects of his creation, while, secondly, enhancing 21 | technologically the work done in a so remarkable and facilitated way. Once drawn in paper and pencil, 22 | an algorithm is naturally implemented in F# and easily deployed in whatever is its execution context. 23 | 24 | I am definitively a strong believer of F# and amazed by the language and its community. 25 | -------------------------------------------------------------------------------- /_testimonials/simon-cousins-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: simon-cousins-1 3 | bullets: 4 | - '**Simon Cousins**' 5 | keywords: 6 | - energy 7 | - trading 8 | - calculations 9 | - ETL 10 | - extract 11 | - transform 12 | - load 13 | quote: The use of F# demonstrates a sweet spot for the language within enterprise software 14 | --- 15 | I have written an application to balance the national power generation schedule for a portfolio 16 | of power stations to a trading position for an energy company. The client and server components 17 | were in C# but the calculation engine was written in F#. 18 | 19 | The use of F# to address the complexity at the heart of this application clearly demonstrates 20 | a sweet spot for the language within enterprise software, namely algorithmically complex 21 | analysis of large data sets. My experience has been a very positive one. 22 | -------------------------------------------------------------------------------- /_testimonials/simon-cousins-2.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: simon-cousins-2 3 | bullets: 4 | - '**UK-based Power Company**' 5 | - Simon Cousins 6 | keywords: 7 | - energy 8 | - extract 9 | - transform 10 | - load 11 | - ETL 12 | quote: I have now delivered three business critical projects written in F#. I am still waiting for the first bug to come in. 13 | --- 14 | I am both a C# dev and an F# dev. I can only offer subjective anecdotal evidence based 15 | on my experience of delivering projects in both languages (I am too busy delivering 16 | software to do anything else). 17 | 18 | That said, the one stat in the summary that I find most compelling is the defect rate. 19 | I have now delivered three business critical projects written in F#. I am still waiting 20 | for the first bug to come in. This is not the case with the C# projects I have delivered. 21 | I will continue to monitor and report on this. It might be that I am just on a lucky streak, 22 | but I suspect that the clarity and concision of F# code contributes greatly to its correctness. 23 | -------------------------------------------------------------------------------- /_testimonials/sledilnik-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: sledilnik-1 3 | bullets: 4 | - Joh Dokler 5 | - COVID-19 Tracker 6 | - '[Project website](https://covid-19.sledilnik.org/en/)' 7 | - '[Source code](https://github.com/sledilnik/website)' 8 | keywords: [] 9 | quote: By using F# and its strong type system, we were able to keep the code base consistent and easily adaptable to this ever-evolving and growing project. 10 | --- 11 | Covid-19 Tracker Slovenia is a community-driven open source project that collects, curates and publishes Covid-19 data for Slovenia. It was launched in March 2020 and server up to a million daily users. 12 | 13 | We use F#/Fable/Feliz for front-end visualization, and F# has proven to be a very good choice for this fast-moving, decentralized project. The majority of people contributing code have never used a functional programming language or even heard of F#. Nevertheless, most contributors were able to quickly navigate the code and develop their own visualizations with little or no orientation and very few bugs or runtime issues. 14 | 15 | By using F# and its strong type system, we were able to keep the code base consistent and easily adaptable to this ever-evolving and growing project. And the excellent Fable and Feliz projects allowed easy and smooth integration into the JavaScript ecosystem. 16 | -------------------------------------------------------------------------------- /_testimonials/stephen-kennedy.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: stephen-kennedy 3 | bullets: 4 | - '**Stephen Kennedy**' 5 | - Readify 6 | keywords: 7 | - mapping 8 | - parsing 9 | - commercial 10 | quote: "F#'s language features not only made it a no-brainer for our project, but allowed us to produce composable, deterministic, and concise code. " 11 | --- 12 | I was consulting at engagement for a large multi-national organization that produces financial software where the need to rewrite the component that deals with importing data from various flat-file formats was identified. The component needed to handle complex business logic and user defined mapping. 13 | 14 | F# was chosen over C# as it provided a large number of language features related to mapping out of the box. Code quotations, discriminated unions, partial application, matching, and active patterns were used extensively. Having objects immutable by default made the logic very deterministic and easy to maintain / follow. 15 | 16 | I was incredibly happy with the results, particularly with the declarative nature I could use to describe the various mappings, and their relationship with other mappings. This should make it much easier for other developers and the business analysts to figure out what logic is executed when a particular mapping occurs. The core logic saw a big reduction in code size, however, the real saving was in the entity specific mapping logic which saw the lines of code required go down by more than 90 percent! 17 | 18 | F# is definitely a language I will be recommending to clients going forward. 19 | -------------------------------------------------------------------------------- /_testimonials/susan-eisenbach-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: susan-eisenbach-1 3 | bullets: 4 | - '**Prof. Susan Eisenbach**' 5 | - 'Imperial College, United Kingdom ' 6 | - '[source](http://web.archive.org/web/20120410193300/http://www.tryfsharp.org/Experts.aspx), [permalink](#susan-eisenbach-1)' 7 | keywords: 8 | - teaching 9 | - research 10 | - cross-platform 11 | quote: F#...levels the playing field between beginners and experienced programmers. 12 | --- 13 | Functional languages are ideal for teaching clear thinking, for solving problems 14 | amenable to code solutions and it levels the playing field between beginners and 15 | experienced programmers. The first programming language taught has a substantial 16 | influence on what language students use when they have a free choice. F#, once it 17 | is platform independent, has the potential to become the first programming language. 18 | -------------------------------------------------------------------------------- /_testimonials/synctoday-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: synctoday-1 3 | bullets: 4 | - '**Sync.Today**' 5 | keywords: 6 | - synchronization 7 | - integration 8 | - startup 9 | quote: '"Speed. I am speed." works for F# like a charm.' 10 | --- 11 | We felt our C# Sync.Today 2013 started to become a huge monster with all the C# scripting, hooks etc. 12 | At the same time it was not really providing us with the flexibility we needed to fulfil our customers' requirements. 13 | Instead of just another round of refactoring we decided to start moving to F# with Sync.Today 2015. Since both languages share the same 14 | common CLR, we did not throw everything away. We just started to simplify more and more because the F# code 15 | has much less lines (we had 146831x "{ or }", 56555x "Blank", 2770x "Null checks", 56194x "Comments" and finally 16 | 223502 "Useful lines" and now we have 30602 lines with an order of magnitude more features and benefits ) 17 | Since we are processing a lot of information, but without complex computations etc., Orleans became the distributed computing library we build the solution on. It is using mixed C# + F# code now, which is perfect for us and allow us to run both on-premise and in Azure. 18 | -------------------------------------------------------------------------------- /_testimonials/tabbles-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: tabbles-1 3 | bullets: 4 | - "**Andrea D'Intino**" 5 | - Yellow blue soft 6 | keywords: 7 | - applications 8 | - business logic 9 | quote: '...the core logic is written in F# wherever possible...' 10 | --- 11 | Yellow blue soft is a truly international Micro-ISV: We are a small, dynamic and international 12 | team who is wondering why file-management is lagging 30 years behind and no one seems to care 13 | or even notice. We do. We love what we're doing and most importantly we love listening to you! 14 | Visit our blog to know more about us and join our forum to become part of our sparkling community. 15 | 16 | The tabbles are special containers that you can use to categorize any kind of file and document as 17 | well as folders and bookmarks. Using Tabbles you can quickly categorize, find, sort and share your 18 | documents, in a totally new way. 19 | -------------------------------------------------------------------------------- /_testimonials/uni-pisa-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: uni-pisa-1 3 | bullets: 4 | - '**Antonio Cisternino**' 5 | - University of Pisa, Italy 6 | keywords: [] 7 | quote: We recommend teaching F# because it is an extraordinary and flexible tool for teaching different areas of Computer Science 8 | --- 9 | At the University of Pisa we use F# for teaching UI programming, a fundamental course in the third year curriculum. 10 | In 2014 two more courses (Programming I & II) will use F# and Try F#. 11 | 12 | We use F# for teaching because it fits teaching both fundamentals and technology thanks to rich programming 13 | environment and libraries to access all system resources (such as UIs). Moreover, F# feels like a dynamic 14 | language thanks to F# interactive even if it is a statically typed language. Our students use F# on Windows, 15 | Mac and Linux. Try F# is a particularly valuable tool for teaching because it has a quite sophisticated 16 | editor with interactive evaluation and the ability of sharing saved files with students. 17 | 18 | I’ve also used F# for teaching programming for scientists at Scuola Normale Superiore, a PhD 19 | course at ITU Copenhagen and to graduate students in biomedical engineering. 20 | 21 | We recommend teaching F# because it is an extraordinary and flexible tool for teaching different areas of 22 | Computer Science. The language is rich and its functional nature allows to easily define the appropriate 23 | subset for teaching particular concepts. I use it to teach entire classes by typing code and evaluate interactively 24 | discussing the results of a single evaluation. It is also a great tool for teaching programming to scientists 25 | and engineers: I found that its mathematical roots in lambda calculus are more readily grasped by 26 | non-programmers, and interactive evaluation recalls environments such as Matlab and Mathematica very 27 | popular in these communities. 28 | -------------------------------------------------------------------------------- /_testimonials/vitor-pereira.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: vitor-pereira 3 | bullets: 4 | - '**Vitor Pereira**' 5 | keywords: 6 | - security 7 | - cryptography 8 | - student 9 | - academia 10 | quote: I am using F# to develop an API for data encryption using fully homomorphic encryption. 11 | --- 12 | I am currently using F# to develop my undergraduate final project. The project consists in developing 13 | an Application Programming Interface that allows one to encrypt data using fully homomorphic encryption 14 | and I found in F# the ideal programming language to develop it. 15 | 16 | Besides all the benefits of the functional paradigm for this type of work, F# interoperability with 17 | the .NET platform allows the construction of powerful implementations that other functional languages 18 | do not allow so easily. 19 | 20 | I really hope that, in the future, I keep working in Cryptography using F# as the main programming 21 | language for my projects. I am also preparing a hands-on presentation about F# and Cryptography to 22 | be presented at an event in Microsoft Portugal, which I will surely enjoy! 23 | -------------------------------------------------------------------------------- /_testimonials/waisal-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: waisal-1 3 | bullets: 4 | - A Fortune 100 Manufacturer 5 | - Supplied to FSSF, [permalink](#waisal-1) 6 | keywords: 7 | - manufacturing 8 | - optimization 9 | - Excel 10 | - solver 11 | quote: F# proved ideal for the complex data machinations required to build the models from raw Excel input. 12 | --- 13 | We developed a ClickOnce F# / WPF application that scores and ranks thousands of models of part-supplier combinations using Microsoft Solver Foundation (MSF). Agents can chose from the highest scoring combinations to optimize purchasing decisions. F# proved ideal for the complex data machinations required to build the models from raw Excel input. Also, the MSF supplied F# functional wrapper is a great way of using Solver Foundation from F#. 14 | -------------------------------------------------------------------------------- /_testimonials/yan-cui.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: yan-cui 3 | bullets: 4 | - '**GameSys**' 5 | - Yan Cui 6 | - Lead Server Engineer 7 | - '[source](http://www.dotnetrocks.com/default.aspx?showNum=846), [permalink](#yan-cui)' 8 | keywords: 9 | - gaming 10 | - agents 11 | - cloud 12 | - big data 13 | - scalability 14 | quote: The F# solution offers us an order of magnitude increase in productivty... 15 | --- 16 | F# is becoming an increasingly important part of our server side infrastructure that supports 17 | our mobile and web-based social games with millions of active users. F# first came to prominence 18 | in our technology stack in the implementation of the rules engine for our social slots games 19 | which by now serve over **700,000 unique players** and **150,000,000 requests** per day at peaks 20 | of several thousand requests per second. 21 | The F# solution offers us an **order of magnitude increase in productivity** and allows 22 | one developer to perform the work that are performed by a team of dedicated developers on an 23 | existing Java-based solution, and is critical in supporting our agile approach and bi-weekly 24 | release cycles. 25 | 26 | The [agent-based programming model](http://www.developerfusion.com/article/139804/an-introduction-to-f-agents/) 27 | offered by F#'s MailboxProcessor allows us to **build thread-safe components with high-concurrency requirements effortlessly**, without using locks and sacrificing maintainability and complexity. 28 | These agent-based solutions also offer much improved efficiency and latency whilst running at scale. 29 | Indeed our agent-based stateful server for our [MMORPG](https://apps.facebook.com/herebemonsters/) 30 | has proved a big success and great cost saver that we're in the process of rolling it out across 31 | all of our social games! 32 | -------------------------------------------------------------------------------- /apple-touch-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/apple-touch-icon-180x180.png -------------------------------------------------------------------------------- /archive/presentations/dsyme-oct-2004-v4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/archive/presentations/dsyme-oct-2004-v4.pdf -------------------------------------------------------------------------------- /archive/presentations/dsyme-serious-sep-04-v3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/archive/presentations/dsyme-serious-sep-04-v3.pdf -------------------------------------------------------------------------------- /css/fontawesome6/css/regular.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2024 Fonticons, Inc. 5 | */ 6 | :root, :host { 7 | --fa-style-family-classic: 'Font Awesome 6 Free'; 8 | --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Free'; } 9 | 10 | @font-face { 11 | font-family: 'Font Awesome 6 Free'; 12 | font-style: normal; 13 | font-weight: 400; 14 | font-display: block; 15 | src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } 16 | 17 | .far, 18 | .fa-regular { 19 | font-weight: 400; } 20 | -------------------------------------------------------------------------------- /css/fontawesome6/css/regular.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2024 Fonticons, Inc. 5 | */ 6 | :host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400} -------------------------------------------------------------------------------- /css/fontawesome6/css/solid.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2024 Fonticons, Inc. 5 | */ 6 | :root, :host { 7 | --fa-style-family-classic: 'Font Awesome 6 Free'; 8 | --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; } 9 | 10 | @font-face { 11 | font-family: 'Font Awesome 6 Free'; 12 | font-style: normal; 13 | font-weight: 900; 14 | font-display: block; 15 | src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } 16 | 17 | .fas, 18 | .fa-solid { 19 | font-weight: 900; } 20 | -------------------------------------------------------------------------------- /css/fontawesome6/css/solid.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2024 Fonticons, Inc. 5 | */ 6 | :host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900} -------------------------------------------------------------------------------- /css/fontawesome6/css/v4-font-face.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2024 Fonticons, Inc. 5 | */ 6 | @font-face { 7 | font-family: 'FontAwesome'; 8 | font-display: block; 9 | src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } 10 | 11 | @font-face { 12 | font-family: 'FontAwesome'; 13 | font-display: block; 14 | src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } 15 | 16 | @font-face { 17 | font-family: 'FontAwesome'; 18 | font-display: block; 19 | src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); 20 | unicode-range: U+F003,U+F006,U+F014,U+F016-F017,U+F01A-F01B,U+F01D,U+F022,U+F03E,U+F044,U+F046,U+F05C-F05D,U+F06E,U+F070,U+F087-F088,U+F08A,U+F094,U+F096-F097,U+F09D,U+F0A0,U+F0A2,U+F0A4-F0A7,U+F0C5,U+F0C7,U+F0E5-F0E6,U+F0EB,U+F0F6-F0F8,U+F10C,U+F114-F115,U+F118-F11A,U+F11C-F11D,U+F133,U+F147,U+F14E,U+F150-F152,U+F185-F186,U+F18E,U+F190-F192,U+F196,U+F1C1-F1C9,U+F1D9,U+F1DB,U+F1E3,U+F1EA,U+F1F7,U+F1F9,U+F20A,U+F247-F248,U+F24A,U+F24D,U+F255-F25B,U+F25D,U+F271-F274,U+F278,U+F27B,U+F28C,U+F28E,U+F29C,U+F2B5,U+F2B7,U+F2BA,U+F2BC,U+F2BE,U+F2C0-F2C1,U+F2C3,U+F2D0,U+F2D2,U+F2D4,U+F2DC; } 21 | 22 | @font-face { 23 | font-family: 'FontAwesome'; 24 | font-display: block; 25 | src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype"); 26 | unicode-range: U+F041,U+F047,U+F065-F066,U+F07D-F07E,U+F080,U+F08B,U+F08E,U+F090,U+F09A,U+F0AC,U+F0AE,U+F0B2,U+F0D0,U+F0D6,U+F0E4,U+F0EC,U+F10A-F10B,U+F123,U+F13E,U+F148-F149,U+F14C,U+F156,U+F15E,U+F160-F161,U+F163,U+F175-F178,U+F195,U+F1F8,U+F219,U+F27A; } 27 | -------------------------------------------------------------------------------- /css/fontawesome6/css/v4-font-face.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2024 Fonticons, Inc. 5 | */ 6 | @font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} -------------------------------------------------------------------------------- /css/fontawesome6/css/v5-font-face.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2024 Fonticons, Inc. 5 | */ 6 | @font-face { 7 | font-family: 'Font Awesome 5 Brands'; 8 | font-display: block; 9 | font-weight: 400; 10 | src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } 11 | 12 | @font-face { 13 | font-family: 'Font Awesome 5 Free'; 14 | font-display: block; 15 | font-weight: 900; 16 | src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } 17 | 18 | @font-face { 19 | font-family: 'Font Awesome 5 Free'; 20 | font-display: block; 21 | font-weight: 400; 22 | src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } 23 | -------------------------------------------------------------------------------- /css/fontawesome6/css/v5-font-face.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2024 Fonticons, Inc. 5 | */ 6 | @font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")} -------------------------------------------------------------------------------- /css/fontawesome6/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/css/fontawesome6/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /css/fontawesome6/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/css/fontawesome6/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /css/fontawesome6/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/css/fontawesome6/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /css/fontawesome6/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/css/fontawesome6/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /css/fontawesome6/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/css/fontawesome6/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /css/fontawesome6/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/css/fontawesome6/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /css/fontawesome6/webfonts/fa-v4compatibility.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/css/fontawesome6/webfonts/fa-v4compatibility.ttf -------------------------------------------------------------------------------- /css/fontawesome6/webfonts/fa-v4compatibility.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/css/fontawesome6/webfonts/fa-v4compatibility.woff2 -------------------------------------------------------------------------------- /css/site.css: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | {% include_relative main.css %} -------------------------------------------------------------------------------- /css/vs.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Visual Studio-like style based on original C# coloring by Jason Diamond 4 | 5 | */ 6 | .hljs { 7 | display: block; 8 | overflow-x: auto; 9 | padding: 0.5em; 10 | background: white; 11 | color: black; 12 | -webkit-text-size-adjust: none; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-annotation, 17 | .hljs-template_comment, 18 | .diff .hljs-header, 19 | .hljs-chunk, 20 | .apache .hljs-cbracket { 21 | color: #008000; 22 | } 23 | 24 | .hljs-keyword, 25 | .hljs-id, 26 | .hljs-built_in,.css 27 | .smalltalk .hljs-class, 28 | .hljs-winutils, 29 | .bash .hljs-variable, 30 | .tex .hljs-command, 31 | .hljs-request, 32 | .hljs-status, 33 | .nginx .hljs-title, 34 | .xml .hljs-tag, 35 | .xml .hljs-tag .hljs-value { 36 | color: #00f; 37 | } 38 | 39 | .hljs-string, 40 | .hljs-title, 41 | .hljs-parent, 42 | .hljs-tag .hljs-value, 43 | .hljs-rules .hljs-value, 44 | .ruby .hljs-symbol, 45 | .ruby .hljs-symbol .hljs-string, 46 | .hljs-template_tag, 47 | .django .hljs-variable, 48 | .hljs-addition, 49 | .hljs-flow, 50 | .hljs-stream, 51 | .apache .hljs-tag, 52 | .hljs-date, 53 | .tex .hljs-formula, 54 | .coffeescript .hljs-attribute { 55 | color: #a31515; 56 | } 57 | 58 | .ruby .hljs-string, 59 | .hljs-decorator, 60 | .hljs-filter .hljs-argument, 61 | .hljs-localvars, 62 | .hljs-array, 63 | .hljs-attr_selector, 64 | .hljs-pseudo, 65 | .hljs-pi, 66 | .hljs-doctype, 67 | .hljs-deletion, 68 | .hljs-envvar, 69 | .hljs-shebang, 70 | .hljs-preprocessor, 71 | .hljs-pragma, 72 | .userType, 73 | .apache .hljs-sqbracket, 74 | .nginx .hljs-built_in, 75 | .tex .hljs-special, 76 | .hljs-prompt { 77 | color: #2b91af; 78 | } 79 | 80 | .hljs-phpdoc, 81 | .hljs-dartdoc, 82 | .hljs-javadoc, 83 | .hljs-xmlDocTag { 84 | color: #808080; 85 | } 86 | 87 | .hljs-type, 88 | .hljs-typename { font-weight: bold; } 89 | 90 | .vhdl .hljs-string { color: #666666; } 91 | .vhdl .hljs-literal { color: #a31515; } 92 | .vhdl .hljs-attribute { color: #00b0e8; } 93 | 94 | .xml .hljs-attribute { color: #f00; } 95 | -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Documentation | fsharp.org 4 | headline: Documentation for F# 5 | --- 6 | 7 | ## [F# Language Reference](https://docs.microsoft.com/dotnet/fsharp/language-reference/) 8 | 9 | Comprehensive F# documentation that includes general information about F#, a language reference explaining all F# constructs as well as documentation for the standard F# library. 10 | 11 | ## [F# Core API Reference](https://fsharp.github.io/fsharp-core-docs/) 12 | 13 | The reference documentation for the FSharp.Core library. 14 | 15 | ## [The F# Language Specification](../specs/language-spec) 16 | 17 | The specification gives an in-depth 18 | technical explanation of the F# language constructs and required compiler behavior. 19 | It discusses topics such as lexical analysis, grammar, types including type inference 20 | algorithm, expressions, patterns and other. 21 | 22 | ## [F# Cheat Sheet](https://github.com/fsprojects/fsharp-cheatsheet) 23 | 24 | 25 | 26 | The cheat sheet is a small and concise guide to F# syntax for newcomers to get started with the language. It's available in [HTML](https://fsprojects.github.io/fsharp-cheatsheet/) and [PDF](https://fsprojects.github.io/fsharp-cheatsheet/fsharp-cheatsheet.pdf) format. 27 | 28 | ## [The F# Component Design Guidelines](https://docs.microsoft.com/dotnet/fsharp/style-guide/component-design-guidelines) 29 | 30 | This document is a set of component 31 | design guidelines for F# programming. It describes guidelines for designing libraries 32 | for use from other languages, guidelines for F#-to-F# libraries and suggestions on 33 | coding conventions. 34 | -------------------------------------------------------------------------------- /favicon-160x160.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/favicon-160x160.png -------------------------------------------------------------------------------- /favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/favicon-16x16.png -------------------------------------------------------------------------------- /favicon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/favicon-192x192.png -------------------------------------------------------------------------------- /favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/favicon-32x32.png -------------------------------------------------------------------------------- /favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/favicon-96x96.png -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/favicon.ico -------------------------------------------------------------------------------- /guides/slack/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: F# on Slack | fsharp.org 4 | headline: F# Slack Team 5 | --- 6 | 7 | ## F# on Slack 8 | 9 | [Slack](https://slack.com/) is a persistent chat service. 10 | 11 | Members of the F# Software Foundation are invited to the [F# Software Foundation](https://fsharp.slack.com/) team. To join, become a member of the F# Software Foundation by [visiting this page](https://foundation.fsharp.org/join). Once you are a member, you will automatically be queued to receive an invite to the Foundation's Slack team. 12 | 13 | ### Channels in Slack Team 14 | 15 | Once you sign into the Slack team, there are various channels containing topics in which you can participate: 16 | 17 | * [#general](https://fsharp.slack.com/messages/general/): General discussions on any topic, including social conversations for members of the Foundation 18 | * [#beginners](https://fsharp.slack.com/messages/beginners/): Questions and answers for beginners coming to F# and the F# Community 19 | * [#code](https://fsharp.slack.com/messages/code/): Code-focused discussion on any F# related topic 20 | * [#web](https://fsharp.slack.com/messages/web/): Discussion focused on using F# with web based technologies 21 | 22 | If you don't receive the invite within 48 hours, or if you have any questions, please send an email to to follow up. 23 | 24 | History within Slack is limited. We recommend using the [F# Discord Forums](https://discord.gg/R6n7c54) for questions or discussions where persistance and history are important. 25 | -------------------------------------------------------------------------------- /history/hopl-draft-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-draft-1.pdf -------------------------------------------------------------------------------- /history/hopl-draft-2.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-draft-2.docx -------------------------------------------------------------------------------- /history/hopl-draft-3.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-draft-3.docx -------------------------------------------------------------------------------- /history/hopl-draft-3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-draft-3.pdf -------------------------------------------------------------------------------- /history/hopl-draft-3b.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-draft-3b.docx -------------------------------------------------------------------------------- /history/hopl-draft-3b.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-draft-3b.pdf -------------------------------------------------------------------------------- /history/hopl-final/acmart.ins: -------------------------------------------------------------------------------- 1 | % 2 | % Doctrip file for acmart 3 | % This file is in public domain 4 | % $Id: acmart.ins,v 1.1 2015/11/23 22:42:55 boris Exp $ 5 | % 6 | \def\batchfile{acmart.ins} 7 | \input docstrip 8 | \keepsilent 9 | \showprogress 10 | 11 | 12 | \askforoverwritefalse 13 | 14 | \generate{% 15 | \file{acmart.cls}{\from{acmart.dtx}{class}} 16 | } 17 | 18 | \obeyspaces 19 | \Msg{*****************************************************}% 20 | \Msg{* Congratulations! You successfully generated the *}% 21 | \Msg{* acmart package. *}% 22 | \Msg{* *}% 23 | \Msg{* Please move the file acmart.cls to where LaTeX *}% 24 | \Msg{* files are stored in your system. The manual is *}% 25 | \Msg{* acmart.pdf. *}% 26 | \Msg{* *}% 27 | \Msg{* The package is released under LPPL *}% 28 | \Msg{* *}% 29 | \Msg{* Happy TeXing! *}% 30 | \Msg{*****************************************************}% -------------------------------------------------------------------------------- /history/hopl-final/acmshepherd.sty: -------------------------------------------------------------------------------- 1 | % This is file `acmshepherd.sty'. 2 | % Guy Steele, January 2020. 3 | % Provides the \shepherd macro for documenting shepherds of papers for 4 | % HOPL IV: Fourth ACM SIGPLAN Conference on History of Programming Languages. 5 | 6 | % Usage: after the \author commands, add one line for each shepherd: 7 | % \shepherd{Full Name, Affiliation} 8 | % Example: 9 | % \shepherd{Guy L. Steele Jr., Oracle Labs} 10 | 11 | 12 | \let\old@mkauthors\@mkauthors 13 | \def\@mkauthors{\old@mkauthors\@mkshepherds} 14 | 15 | \def\@shepherdfont{\@affiliationfont} 16 | \def\@acmShepherds{} 17 | \newcount\num@shepherds 18 | \num@shepherds=0\relax 19 | \newif\iffirstshepherd 20 | \def\shepherd#1{\advance\num@shepherds by 1% 21 | \g@addto@macro\@acmShepherds{\@mkshepherd{#1}}} 22 | \def\@mkshepherd#1{\iffirstshepherd 23 | \noindent\hskip\normalparindent{\ifnum\num@shepherds>1 Shepherds\else Shepherd\fi:\hskip0.5em}#1\par 24 | \else 25 | \noindent\hskip\normalparindent\phantom{\ifnum\num@shepherds>1 Shepherds\else Shepherd\fi:\hskip0.5em}#1\par 26 | \fi 27 | \firstshepherdfalse} 28 | \def\@mkshepherds{\ifx\@acmShepherds\@empty \else 29 | \global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par 30 | \firstshepherdtrue 31 | {\@shepherdfont\@acmShepherds} 32 | \par\medskip}% 33 | \fi 34 | } 35 | 36 | % Unrelated stuff that really belongs in acmart.cls eventually. 37 | 38 | \providecommand\NA{{\sc non-archival}} 39 | 40 | \def\UrlOrds{\do\*\do\-\do\~\do\'\do\"\do\-\do\_} 41 | 42 | -------------------------------------------------------------------------------- /history/hopl-final/directx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-final/directx.png -------------------------------------------------------------------------------- /history/hopl-final/directx2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-final/directx2.jpg -------------------------------------------------------------------------------- /history/hopl-final/fig1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-final/fig1.jpg -------------------------------------------------------------------------------- /history/hopl-final/fig2a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-final/fig2a.jpg -------------------------------------------------------------------------------- /history/hopl-final/fig2b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-final/fig2b.jpg -------------------------------------------------------------------------------- /history/hopl-final/fig3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-final/fig3.jpg -------------------------------------------------------------------------------- /history/hopl-final/fig4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-final/fig4.jpg -------------------------------------------------------------------------------- /history/hopl-final/fsharp-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-final/fsharp-logo.png -------------------------------------------------------------------------------- /history/hopl-final/hindley-milner.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-final/hindley-milner.PNG -------------------------------------------------------------------------------- /history/hopl-final/hopl-fsharp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-final/hopl-fsharp.pdf -------------------------------------------------------------------------------- /history/hopl-final/msft.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-final/msft.jpg -------------------------------------------------------------------------------- /history/hopl-final/sql-provider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-final/sql-provider.png -------------------------------------------------------------------------------- /history/hopl-final/team-2012.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-final/team-2012.jpg -------------------------------------------------------------------------------- /history/hopl-final/team-2014.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-final/team-2014.png -------------------------------------------------------------------------------- /history/hopl-final/tp-freebase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/history/hopl-final/tp-freebase.png -------------------------------------------------------------------------------- /history/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: About F# | History 4 | headline: History 5 | --- 6 | 7 | * [The Early History of the F# Language, presented by Don Syme at HOPL-IV, The History of Programming Languages, 22 June 2021](https://dl.acm.org/doi/pdf/10.1145/3386325), [PDF](hopl-final/hopl-fsharp.pdf) 8 | 9 | * [Matching slides](https://github.com/dsyme/fsharp-presentations/tree/master/2021-06-21-hopl) 10 | 11 | * [Matching talk: Narratives from The Early History of F#](https://www.pldi21.org/prerecorded_hopl.19.html) 12 | 13 | * [Matching talk #2: Narratives and Lessons from The Early History of F#](https://www.youtube.com/watch?v=ynIe8Q7kMSg) 14 | -------------------------------------------------------------------------------- /humans.txt: -------------------------------------------------------------------------------- 1 | # humanstxt.org/ 2 | # The humans responsible & technology colophon 3 | 4 | # TEAM 5 | Phil Trelford Organizer @ptrelford 6 | Tomas Petricek Organizer @tomaspetricek 7 | John Fair Web Developer @johnbfair 8 | Steffen Forkmann @Ssforkmann 9 | Reed Copsey @ReedCopsey 10 | 11 | # THANKS 12 | Microsoft 13 | Don Syme -- @dsyme 14 | 15 | # TECHNOLOGY COLOPHON 16 | 17 | HTML5 Boilerplate, 18 | CSS3 19 | jQuery, 20 | Modernizr 21 | Twitter Bootstrap, 22 | Jekyll -------------------------------------------------------------------------------- /images/thumbs/AkkaDotNET.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/AkkaDotNET.png -------------------------------------------------------------------------------- /images/thumbs/AntaniXml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/AntaniXml.png -------------------------------------------------------------------------------- /images/thumbs/BioFSharp_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/BioFSharp_small.png -------------------------------------------------------------------------------- /images/thumbs/Brahma.FSharp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/Brahma.FSharp.jpg -------------------------------------------------------------------------------- /images/thumbs/CenterCLR.RelaxVersioner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/CenterCLR.RelaxVersioner.png -------------------------------------------------------------------------------- /images/thumbs/DAXIFsharp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/DAXIFsharp.png -------------------------------------------------------------------------------- /images/thumbs/Deedle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/Deedle.png -------------------------------------------------------------------------------- /images/thumbs/DiffSharpLogoSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/DiffSharpLogoSmall.png -------------------------------------------------------------------------------- /images/thumbs/ExcelFinancialFunctions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/ExcelFinancialFunctions.png -------------------------------------------------------------------------------- /images/thumbs/FAKE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FAKE.png -------------------------------------------------------------------------------- /images/thumbs/FSCL.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSCL.jpeg -------------------------------------------------------------------------------- /images/thumbs/FSDN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSDN.png -------------------------------------------------------------------------------- /images/thumbs/FSharp.Azure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharp.Azure.png -------------------------------------------------------------------------------- /images/thumbs/FSharp.Charting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharp.Charting.png -------------------------------------------------------------------------------- /images/thumbs/FSharp.Compiler.Service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharp.Compiler.Service.png -------------------------------------------------------------------------------- /images/thumbs/FSharp.Configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharp.Configuration.png -------------------------------------------------------------------------------- /images/thumbs/FSharp.Control.FusionTasks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharp.Control.FusionTasks.png -------------------------------------------------------------------------------- /images/thumbs/FSharp.Control.Reactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharp.Control.Reactive.png -------------------------------------------------------------------------------- /images/thumbs/FSharp.Data.SqlClient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharp.Data.SqlClient.png -------------------------------------------------------------------------------- /images/thumbs/FSharp.Data.Toolbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharp.Data.Toolbox.png -------------------------------------------------------------------------------- /images/thumbs/FSharp.Data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharp.Data.png -------------------------------------------------------------------------------- /images/thumbs/FSharp.Desktop.UI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharp.Desktop.UI.png -------------------------------------------------------------------------------- /images/thumbs/FSharp.Formatting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharp.Formatting.png -------------------------------------------------------------------------------- /images/thumbs/FSharp.Management.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharp.Management.png -------------------------------------------------------------------------------- /images/thumbs/FSharp.Quotations.Evaluator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharp.Quotations.Evaluator.png -------------------------------------------------------------------------------- /images/thumbs/FSharpLint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharpLint.png -------------------------------------------------------------------------------- /images/thumbs/FSharpRProvider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharpRProvider.png -------------------------------------------------------------------------------- /images/thumbs/FSharpTest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharpTest.png -------------------------------------------------------------------------------- /images/thumbs/FSharpVSPowerTools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharpVSPowerTools.png -------------------------------------------------------------------------------- /images/thumbs/FSharpx.Collections.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharpx.Collections.png -------------------------------------------------------------------------------- /images/thumbs/FSharpx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FSharpx.png -------------------------------------------------------------------------------- /images/thumbs/Farkle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/Farkle.png -------------------------------------------------------------------------------- /images/thumbs/FlexSearch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FlexSearch.png -------------------------------------------------------------------------------- /images/thumbs/Foogle.Charts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/Foogle.Charts.png -------------------------------------------------------------------------------- /images/thumbs/Foq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/Foq.png -------------------------------------------------------------------------------- /images/thumbs/FsAlgLogoSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FsAlgLogoSmall.png -------------------------------------------------------------------------------- /images/thumbs/FsEye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FsEye.png -------------------------------------------------------------------------------- /images/thumbs/FsLexYacc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FsLexYacc.png -------------------------------------------------------------------------------- /images/thumbs/FsReveal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FsReveal.png -------------------------------------------------------------------------------- /images/thumbs/Fspec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/Fspec.png -------------------------------------------------------------------------------- /images/thumbs/FuncUI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/FuncUI.png -------------------------------------------------------------------------------- /images/thumbs/HiveProvider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/HiveProvider.png -------------------------------------------------------------------------------- /images/thumbs/HypeLogo32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/HypeLogo32.png -------------------------------------------------------------------------------- /images/thumbs/IHeartFsharp160.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/IHeartFsharp160.png -------------------------------------------------------------------------------- /images/thumbs/MathNet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/MathNet.png -------------------------------------------------------------------------------- /images/thumbs/PSeq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/PSeq.png -------------------------------------------------------------------------------- /images/thumbs/Paket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/Paket.png -------------------------------------------------------------------------------- /images/thumbs/ProjectScaffold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/ProjectScaffold.png -------------------------------------------------------------------------------- /images/thumbs/S3Provider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/S3Provider.png -------------------------------------------------------------------------------- /images/thumbs/Tamarin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/Tamarin.png -------------------------------------------------------------------------------- /images/thumbs/Unquote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/Unquote.png -------------------------------------------------------------------------------- /images/thumbs/VSCode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/VSCode.png -------------------------------------------------------------------------------- /images/thumbs/WebSharper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/WebSharper.png -------------------------------------------------------------------------------- /images/thumbs/XPlot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/XPlot.png -------------------------------------------------------------------------------- /images/thumbs/YaccConstructor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/YaccConstructor.jpg -------------------------------------------------------------------------------- /images/thumbs/aspnet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/aspnet.png -------------------------------------------------------------------------------- /images/thumbs/canopy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/canopy.jpg -------------------------------------------------------------------------------- /images/thumbs/cheetsheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/cheetsheet.png -------------------------------------------------------------------------------- /images/thumbs/dotnet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/dotnet.png -------------------------------------------------------------------------------- /images/thumbs/dynamodb_sql.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/dynamodb_sql.png -------------------------------------------------------------------------------- /images/thumbs/fable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/fable.png -------------------------------------------------------------------------------- /images/thumbs/fantomas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/fantomas.png -------------------------------------------------------------------------------- /images/thumbs/filbert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/filbert.png -------------------------------------------------------------------------------- /images/thumbs/fracture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/fracture.png -------------------------------------------------------------------------------- /images/thumbs/fsbolero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/fsbolero.png -------------------------------------------------------------------------------- /images/thumbs/fsharp.web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/fsharp.web.png -------------------------------------------------------------------------------- /images/thumbs/fsharpbinding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/fsharpbinding.png -------------------------------------------------------------------------------- /images/thumbs/fszmq_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/fszmq_logo.png -------------------------------------------------------------------------------- /images/thumbs/fuzzy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/fuzzy.png -------------------------------------------------------------------------------- /images/thumbs/giraffe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/giraffe.png -------------------------------------------------------------------------------- /images/thumbs/github-mark-white.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/thumbs/github-mark.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/thumbs/glot-io.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/glot-io.jpg -------------------------------------------------------------------------------- /images/thumbs/ionide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/ionide.png -------------------------------------------------------------------------------- /images/thumbs/ionide_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/ionide_logo.png -------------------------------------------------------------------------------- /images/thumbs/jupyter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/jupyter.png -------------------------------------------------------------------------------- /images/thumbs/nessos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/nessos.png -------------------------------------------------------------------------------- /images/thumbs/quantalea-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/quantalea-small.png -------------------------------------------------------------------------------- /images/thumbs/quantalea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/quantalea.png -------------------------------------------------------------------------------- /images/thumbs/rider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/rider.png -------------------------------------------------------------------------------- /images/thumbs/safestack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/safestack.png -------------------------------------------------------------------------------- /images/thumbs/saturn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/saturn.png -------------------------------------------------------------------------------- /images/thumbs/servicestack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/servicestack.png -------------------------------------------------------------------------------- /images/thumbs/sqlfun-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/sqlfun-small.png -------------------------------------------------------------------------------- /images/thumbs/suave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/suave.png -------------------------------------------------------------------------------- /images/thumbs/swf_ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/swf_ext.png -------------------------------------------------------------------------------- /images/thumbs/tryfsharp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/tryfsharp.jpg -------------------------------------------------------------------------------- /images/thumbs/vstudio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/vstudio.png -------------------------------------------------------------------------------- /images/thumbs/xamarin-studio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/images/thumbs/xamarin-studio.png -------------------------------------------------------------------------------- /img/Facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/Facebook.png -------------------------------------------------------------------------------- /img/Twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/Twitter.png -------------------------------------------------------------------------------- /img/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/arrow.png -------------------------------------------------------------------------------- /img/big/ffconsultancy.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/big/ffconsultancy.gif -------------------------------------------------------------------------------- /img/big/ffconsultancy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/big/ffconsultancy.png -------------------------------------------------------------------------------- /img/big/fpish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/big/fpish.png -------------------------------------------------------------------------------- /img/big/fsharp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/big/fsharp.png -------------------------------------------------------------------------------- /img/big/goswin-waggner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/big/goswin-waggner.png -------------------------------------------------------------------------------- /img/big/intelli.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/big/intelli.gif -------------------------------------------------------------------------------- /img/big/kaggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/big/kaggle.png -------------------------------------------------------------------------------- /img/big/mbrace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/big/mbrace.png -------------------------------------------------------------------------------- /img/big/microsoft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/big/microsoft.png -------------------------------------------------------------------------------- /img/big/quantalea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/big/quantalea.png -------------------------------------------------------------------------------- /img/big/servicestack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/big/servicestack.png -------------------------------------------------------------------------------- /img/big/skillsmatter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/big/skillsmatter.png -------------------------------------------------------------------------------- /img/big/statfactory.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/big/statfactory.jpg -------------------------------------------------------------------------------- /img/big/vfsharp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/big/vfsharp.png -------------------------------------------------------------------------------- /img/big/xamarin-studio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/big/xamarin-studio.png -------------------------------------------------------------------------------- /img/big/xamarin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/big/xamarin.png -------------------------------------------------------------------------------- /img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /img/left-gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/left-gradient.png -------------------------------------------------------------------------------- /img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/logo.png -------------------------------------------------------------------------------- /img/logo/FsXaml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/logo/FsXaml.png -------------------------------------------------------------------------------- /img/logo/fsharp.svg: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 16 | 19 | 22 | 23 | -------------------------------------------------------------------------------- /img/logo/fsharp100mcdark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/logo/fsharp100mcdark.png -------------------------------------------------------------------------------- /img/logo/fsharp100mclight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/logo/fsharp100mclight.png -------------------------------------------------------------------------------- /img/logo/fsharp128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/logo/fsharp128.png -------------------------------------------------------------------------------- /img/logo/fsharp2048.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/logo/fsharp2048.png -------------------------------------------------------------------------------- /img/logo/fsharp256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/logo/fsharp256.png -------------------------------------------------------------------------------- /img/logo/fsharp512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/logo/fsharp512.png -------------------------------------------------------------------------------- /img/right-gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/right-gradient.png -------------------------------------------------------------------------------- /img/rss.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/rss.gif -------------------------------------------------------------------------------- /img/rss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/rss.png -------------------------------------------------------------------------------- /img/sup/cumps_consulting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/sup/cumps_consulting.png -------------------------------------------------------------------------------- /img/sup/drdispatch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/sup/drdispatch.png -------------------------------------------------------------------------------- /img/sup/fsharpworks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/sup/fsharpworks.png -------------------------------------------------------------------------------- /img/sup/genetec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/sup/genetec.png -------------------------------------------------------------------------------- /img/sup/jet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/sup/jet.png -------------------------------------------------------------------------------- /img/sup/prolucid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/sup/prolucid.png -------------------------------------------------------------------------------- /img/sup/tachyus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/img/sup/tachyus.png -------------------------------------------------------------------------------- /js/main.js: -------------------------------------------------------------------------------- 1 | // $(function () { 2 | // var path = window.location.pathname; 3 | 4 | // $('ul.nav') 5 | // .find('li') 6 | // .find('a[href="' + path + '"]') 7 | // .parent('li') 8 | // .addClass('active'); 9 | // }); -------------------------------------------------------------------------------- /js/plugins.js: -------------------------------------------------------------------------------- 1 | // Avoid `console` errors in browsers that lack a console. 2 | if (!(window.console && console.log)) { 3 | (function() { 4 | var noop = function() {}; 5 | var methods = ['assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 'markTimeline', 'profile', 'profileEnd', 'markTimeline', 'table', 'time', 'timeEnd', 'timeStamp', 'trace', 'warn']; 6 | var length = methods.length; 7 | var console = window.console = {}; 8 | while (length--) { 9 | console[methods[length]] = noop; 10 | } 11 | }()); 12 | } 13 | 14 | // Place any jQuery/helper plugins in here. 15 | -------------------------------------------------------------------------------- /learn/books.html: -------------------------------------------------------------------------------- 1 | --- 2 | title: F# Books | fsharp.org 3 | layout: page 4 | headline: F# Books 5 | --- 6 | 7 |
8 | {% for book in site.books reversed %} 9 |
12 |
13 | Cover of {{ book.title }} 19 |
20 |
21 |

22 | {{ book.title }} 28 |

29 |
30 | {{ book.author }}, 31 | {{ book.year }} 32 |
33 |
34 |
{{ book.content }}
35 |
36 |
37 | {% endfor %} 38 |
39 | -------------------------------------------------------------------------------- /learn/books.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/books.yaml -------------------------------------------------------------------------------- /learn/files/book_covers/beginning_fsharp_4.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/beginning_fsharp_4.webp -------------------------------------------------------------------------------- /learn/files/book_covers/book_of_fsharp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/book_of_fsharp.png -------------------------------------------------------------------------------- /learn/files/book_covers/building_fsharp_applications.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/building_fsharp_applications.avif -------------------------------------------------------------------------------- /learn/files/book_covers/domain_modeling_made_functional.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/domain_modeling_made_functional.webp -------------------------------------------------------------------------------- /learn/files/book_covers/essential_fsharp.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/essential_fsharp.jpeg -------------------------------------------------------------------------------- /learn/files/book_covers/expert_fsharp_4.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/expert_fsharp_4.webp -------------------------------------------------------------------------------- /learn/files/book_covers/fsharp_4_design_patterns.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/fsharp_4_design_patterns.webp -------------------------------------------------------------------------------- /learn/files/book_covers/fsharp_applied.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/fsharp_applied.webp -------------------------------------------------------------------------------- /learn/files/book_covers/fsharp_applied_ii.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/fsharp_applied_ii.webp -------------------------------------------------------------------------------- /learn/files/book_covers/fsharp_deep_dives.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/fsharp_deep_dives.jpg -------------------------------------------------------------------------------- /learn/files/book_covers/fsharp_for_machine_learning_essentials.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/fsharp_for_machine_learning_essentials.jpg -------------------------------------------------------------------------------- /learn/files/book_covers/fsharp_for_quantitative_finance.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/fsharp_for_quantitative_finance.webp -------------------------------------------------------------------------------- /learn/files/book_covers/fsharp_for_scientists.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/fsharp_for_scientists.jpg -------------------------------------------------------------------------------- /learn/files/book_covers/fsharp_high_performance.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/fsharp_high_performance.webp -------------------------------------------------------------------------------- /learn/files/book_covers/fsharp_ile_fonksiyonel_programlama_kitabi_on_kapak.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/fsharp_ile_fonksiyonel_programlama_kitabi_on_kapak.webp -------------------------------------------------------------------------------- /learn/files/book_covers/fsharp_in_action.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/fsharp_in_action.png -------------------------------------------------------------------------------- /learn/files/book_covers/functional_programming_using_fsharp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/functional_programming_using_fsharp.jpg -------------------------------------------------------------------------------- /learn/files/book_covers/learning_functional_programming_with_fsharp.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/learning_functional_programming_with_fsharp.avif -------------------------------------------------------------------------------- /learn/files/book_covers/machine_learning_projects_for_dotnet_developers.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/machine_learning_projects_for_dotnet_developers.jpg -------------------------------------------------------------------------------- /learn/files/book_covers/mastering_fsharp.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/mastering_fsharp.avif -------------------------------------------------------------------------------- /learn/files/book_covers/multi-paradigm_programming_using_fsharp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/multi-paradigm_programming_using_fsharp.jpg -------------------------------------------------------------------------------- /learn/files/book_covers/programming_language_concepts.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/programming_language_concepts.webp -------------------------------------------------------------------------------- /learn/files/book_covers/real_world_functional_programming.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/real_world_functional_programming.jpg -------------------------------------------------------------------------------- /learn/files/book_covers/stylish_fsharp_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/book_covers/stylish_fsharp_6.png -------------------------------------------------------------------------------- /learn/files/tryfsharp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/learn/files/tryfsharp.jpg -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type":"module", 3 | "devDependencies": { 4 | "@tailwindcss/forms": "^0.5.10", 5 | "@tailwindcss/postcss": "^4.0.9", 6 | "@tailwindcss/typography": "^0.5.16", 7 | "postcss": "^8.5.3", 8 | "postcss-cli": "^11.0.0", 9 | "tailwindcss": "^4.0.9" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | "@tailwindcss/postcss": {} 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /robots.txt: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | # robotstxt.org/ 4 | 5 | User-agent: * 6 | 7 | Sitemap: {{ "/sitemap.xml" | absolute_url }} -------------------------------------------------------------------------------- /specs/archive/FSharp-2.0-EarlyLibrarySpec-v34.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/specs/archive/FSharp-2.0-EarlyLibrarySpec-v34.docx -------------------------------------------------------------------------------- /specs/archive/FSharp-2.0-MiscTechnicalNotes-v3.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/specs/archive/FSharp-2.0-MiscTechnicalNotes-v3.docx -------------------------------------------------------------------------------- /specs/archive/FSharp-3.0-QueriesAndData-v4.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/specs/archive/FSharp-3.0-QueriesAndData-v4.docx -------------------------------------------------------------------------------- /specs/archive/FSharp-3.0-TypeProviders-v5.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/specs/archive/FSharp-3.0-TypeProviders-v5.docx -------------------------------------------------------------------------------- /specs/component-design-guidelines/fsharp-design-guidelines-latest.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/specs/component-design-guidelines/fsharp-design-guidelines-latest.docx -------------------------------------------------------------------------------- /specs/component-design-guidelines/fsharp-design-guidelines-v14.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/specs/component-design-guidelines/fsharp-design-guidelines-v14.pdf -------------------------------------------------------------------------------- /specs/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: About F# | Specifications 4 | headline: Specifications 5 | --- 6 | 7 | * [The F# Language Specification](language-spec/) 8 | 9 | * [The F# Component Design Guidelines](https://docs.microsoft.com/en-us/dotnet/fsharp/style-guide/component-design-guidelines/) 10 | -------------------------------------------------------------------------------- /specs/language-spec/2.0/FSharpSpec-2.0-April-2012.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/specs/language-spec/2.0/FSharpSpec-2.0-April-2012.pdf -------------------------------------------------------------------------------- /specs/language-spec/3.0/FSharpSpec-3.0-final.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/specs/language-spec/3.0/FSharpSpec-3.0-final.docx -------------------------------------------------------------------------------- /specs/language-spec/3.0/FSharpSpec-3.0-final.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/specs/language-spec/3.0/FSharpSpec-3.0-final.pdf -------------------------------------------------------------------------------- /specs/language-spec/3.1/FSharpSpec-3.1-final.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/specs/language-spec/3.1/FSharpSpec-3.1-final.docx -------------------------------------------------------------------------------- /specs/language-spec/3.1/FSharpSpec-3.1-final.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/specs/language-spec/3.1/FSharpSpec-3.1-final.pdf -------------------------------------------------------------------------------- /specs/language-spec/4.0/FSharpSpec-4.0-final.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/specs/language-spec/4.0/FSharpSpec-4.0-final.docx -------------------------------------------------------------------------------- /specs/language-spec/4.0/FSharpSpec-4.0-final.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/specs/language-spec/4.0/FSharpSpec-4.0-final.pdf -------------------------------------------------------------------------------- /specs/language-spec/4.0/FSharpSpec-4.0-latest.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/specs/language-spec/4.0/FSharpSpec-4.0-latest.docx -------------------------------------------------------------------------------- /specs/language-spec/4.0/FSharpSpec-4.0-latest.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/specs/language-spec/4.0/FSharpSpec-4.0-latest.pdf -------------------------------------------------------------------------------- /specs/language-spec/4.1/FSharpSpec-4.1-latest.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/specs/language-spec/4.1/FSharpSpec-4.1-latest.docx -------------------------------------------------------------------------------- /specs/language-spec/4.1/FSharpSpec-4.1-latest.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/specs/language-spec/4.1/FSharpSpec-4.1-latest.pdf -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/tailwind.config.js -------------------------------------------------------------------------------- /teaching/files/fpbook.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/teaching/files/fpbook.jpg -------------------------------------------------------------------------------- /teaching/files/sestoft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fsharp/fsharp.org/a5f1361d1642236cc35d095a569f5bd0a63237e0/teaching/files/sestoft.png -------------------------------------------------------------------------------- /use/desktop-apps/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Using F# for Desktop Apps | fsharp.org 4 | headline: Using F# for Desktop Apps 5 | --- 6 | 7 | ### Option 1: Use Avalonia.FuncUI (cross-platform) 8 | 9 | ![logo](../../images/thumbs/FuncUI.png) [Avalonia.FuncUI](https://github.com/AvaloniaCommunity/Avalonia.FuncUI/) is an F# 10 | Model-View-Update framework for functional cross-platform UI development. 11 | 12 | * [Getting Started](https://github.com/AvaloniaCommunity/Avalonia.FuncUI/wiki) 13 | 14 | * [Examples](https://github.com/AvaloniaCommunity/Avalonia.FuncUI/tree/master/src/Examples) 15 | 16 |
17 | 18 | ### Option 2: Use Elmish.WPF (Windows Only) 19 | 20 | Elmish.WPF is a production-ready library that allows you to write WPF apps with the robust, simple, well-known, and battle-tested MVU architecture, while still allowing you to use all your XAML knowledge and tooling to create UIs. 21 | 22 | * [Getting Started](https://github.com/elmish/Elmish.WPF#getting-started-with-elmishwpf) 23 | 24 | * [Tutorial](https://github.com/elmish/Elmish.WPF/blob/master/TUTORIAL.md) 25 | 26 | * [Samples](https://github.com/elmish/Elmish.WPF/tree/master/src/Samples) 27 | 28 |
29 | 30 | ### Option 3: Use Windows Forms or WPF directly (Windows Only) 31 | 32 | On Windows, F# lets you directly program Windows Forms and WPF applications directly. Some resources for doing this are below, many others 33 | are available on the web. 34 | 35 | * [WinForms Introduction](https://medium.com/@vivainio/creating-a-windows-forms-gui-with-f-968b3ae75a82) 36 | 37 | * [WPF with FsXaml Introduction](https://www.c-sharpcorner.com/article/create-wpf-application-with-f-sharp-and-fsxaml/) (.NET Framework only) 38 | 39 |
40 | 41 | There are other options, see also [F# Community Projects](../../community/projects/). 42 | -------------------------------------------------------------------------------- /use/mobile-apps/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Use F# for Mobile App Development | fsharp.org 4 | headline: Use F# for Mobile App Development 5 | redirect_from: 6 | - /use/android/index.html 7 | - /use/ios/index.html 8 | --- 9 | 10 | ### Option 1: Build Android and iOS Apps using F# and Xamarin 11 | 12 | F# supports the development of Android and iOS applications using the [Xamarin](https://dotnet.microsoft.com/apps/xamarin) tools. 13 | Both native and cross-platform app development is possible. 14 | 15 | 1. Install [JetBrains Rider](https://www.jetbrains.com/rider/), or [Visual Studio for Mac](https://visualstudio.microsoft.com/vs/mac/). 16 | 17 | 2. Select F# Language support as part of installation. 18 | 19 | [Fabulous](https://fabulous.dev) is a framework for F# Functional App Development, using declarative dynamic UI. 20 | This allows you to use the ultra-simple MVU (Model-View-Update) architecture to build applications for iOS, Android, Mac, WPF and more using Xamarin.Forms. 21 | 22 | * [Getting Started with Fabulous](https://docs.fabulous.dev). 23 | 24 | * [Fabulous Weather](https://github.com/cboudereau/fabulous-weather) - A sample weather app using Fabulous 25 | 26 | * [Fabulous Contacts](https://github.com/TimLariviere/FabulousContacts) - A sample contacts app using Fabulous 27 | 28 |
29 | 30 | ### Option 2: Build Android and iOS Apps using F# and React Native 31 | 32 | F# supports the development of Android and iOS applications using React and React Native. 33 | See [this guided example](https://github.com/SAFE-Stack/SAFE-Nightwatch) for starting development. 34 | 35 |
36 | 37 | There are other options, see also [F# for Mobile Apps](../../guides/mobile-apps/). 38 | -------------------------------------------------------------------------------- /use/notebooks/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Using F# for Jupyter Notebooks | fsharp.org 4 | headline: Using F# for Jupyter Notebooks 5 | --- 6 | 7 | ### Use .NET Interactive Jupyter Notebooks 8 | 9 | ![logo](../../images/thumbs/jupyter.png) [.NET Interactive](https://github.com/dotnet/interactive/) 10 | provides data scientists and developers a way to explore data, experiment with code, and try new ideas 11 | effortlessly using .NET Core. Use .NET Interactive to build .NET Jupyter notebooks or custom interactive coding experiences. 12 | 13 | * [Use in Visual Studio Code](https://github.com/dotnet/interactive/#visual-studio-code) 14 | 15 | * [Use in Jupyter](https://github.com/dotnet/interactive/#jupyter-and-nteract) 16 | 17 |
18 | 19 | See also [F# for Data Science](../../guides/data-science/). 20 | --------------------------------------------------------------------------------