Why OO Matters (in F#)

I kind of agree and also prefer to use objects in some cases.

Eirik Tsarpalis' blog

F# is a functional-first programming language that comes with a substantial object-oriented feature set. It is so feature-complete in fact, that almost any C# class can be ported over to F# code with little substantial alteration.

However significant, this subset of the language is seeing limited appreciation from the community, which I suspect is partly fuelled by the known criticisms of OOP and partly by a desire to be different than C#. After all, this is a functional-first language so we can just replace all our classes with functions. There is also the opinion that OOP in F# merely serves as a compatibility layer for .NET, so it’s really only there to cover those unfortunate scenarios of having to use a library that accepts interfaces.

Enabling Abstraction

One of the most important aspects of maintaining a nontrivial codebase is controlling complexity. Complexity can be contained by partitioning code into logically…

View original post 1,596 more words

F# Weekly #12, 2017

Welcome to F# Weekly,

A roundup of F# content from this past week:

News

Videos

Blogs

F# vNext

Open source projects

  • LicenseToCIL – Semi-safely generate CIL in F#
  • fsharpwatson – Code example for IBM Watson Developer Cloud API calls in F#
  • fsml – A machine learning project in F#
  • chiron – JSON for F#
  • furl – Interact with HTTP resources using F# scripting

New Releases

That’s all for now. Have a great week.

Previous F# Weekly edition – #11Subscribe

F# Weekly #11, 2017

Welcome to F# Weekly,

A roundup of F# content from this past week:

News

Videos

Blogs

F# vNext

Open source projects

  • FsYamlParser – Yaml1.2 parser in F#
  • quotationcompiler – Quotation Compilation library that uses FSharp.Compiler.Service
  • Fake.fsx – A FAKE extension module for working with FSX files.

New Releases

Do not miss your chance to become a part of awesome F# eXchange 2017

That’s all for now. Have a great week.

Previous F# Weekly edition – #10Subscribe

F# Weekly #10, 2017

Welcome to F# Weekly,

A roundup of F# content from this past week:

News

Videos

Blogs

F# vNext

Open source projects

  • Fornax – Fornax is a static site generator using type safe F# DSL to define page templates
  • fsfix – an F# FIX engine
  • Fable.Auth0 – Fable with Auth0
  • Chauffeur.ExternalPackages – An extension for Chauffeur that allows you to install packages from the Umbraco package feed
  • fable-elmish – Elm-like abstractions for F# apps
  • MyML – ML Like Language

New Releases

That’s all for now. Have a great week.

Previous F# Weekly edition – #9Subscribe

F# Weekly #9, 2017

Welcome to F# Weekly,

A roundup of F# content from this past week:

News

Videos

Blogs

F# vNext

Open source projects

  • DragonBall – Search Engine written with FSharp
  • FsYaml – Typed Yaml Library for F#

New Releases

That’s all for now. Have a great week.

Previous F# Weekly edition – #8Subscribe

You’re better off using Exceptions

Worth reading, for sure.

Eirik Tsarpalis' blog

Exception handling is an error management paradigm that has often been met with criticism. Such criticisms typically revolve around scoping considerations, exceptions-as-control-flow abuse or even the assertion that exceptions are really just a type safe version of goto. To an extent, these seem like valid concerns but it is not within the scope of this article to address those per se.

Such concerns resonate particularly well within FP communities, often taken to the extreme: we should reject exceptions altogether, since code that throws is necessarily impure. In the F# community, this opinion is in part realized by advocating alternatives like result types and railway-oriented programming. In essence, these approaches follow the Either monad found in Haskell, but often intentionally avoiding the use of do notation/computation expressions (since that’s just interpreted exception semantics).

The TL;DR version of the approach is that we define a union type for results that looks…

View original post 920 more words

F# Weekly #8, 2017

Welcome to F# Weekly,

A roundup of F# content from this past week:

News

Videos

Blogs

F# vNext

Open source projects

New Releases

That’s all for now. Have a great week.

Previous F# Weekly edition – #7Subscribe

F# Weekly #7, 2017

Welcome to F# Weekly,

A roundup of F# content from this past week:

News

Videos

Blogs

F# vNext

Open source projects

  • smvp – Simple F# API over the Microsoft MVP API
  • AspNetCore.Lambda – An attempt to make ASP.NET Core more functional.
  • fsharp-gcloud-functions – Getting some F# into Google Cloud functions
  • MBrace.Sql – WIP – SQL Layer for running queries against MBrace data stores

New Releases

That’s all for now. Have a great week.

Previous F# Weekly edition – #6Subscribe

F# Weekly #6, 2017

Welcome to F# Weekly,

A roundup of F# content from this past week:

News

Videos

Blogs

F# vNext

Open source projects

New Releases

That’s all for now. Have a great week.

Previous F# Weekly edition – #5Subscribe