Wednesday, 17 June 2015

Finding frequent pairs using the A priori algorithm

The F# Journal just published an article about a Big Data algorithm:
"Finding pairs of items that appear together often in large datasets is a popular challenge. This is increasingly posed as an interview question in the context of Big Data. This article takes a look at a simple challenge that was posed in an interview and solves the problem used a variety of different approaches...."
To read this article and more, subscribe to The F# Journal today!

Tuesday, 14 April 2015

F# Core vs the BCL Immutable Collections: Sorted Dictionary

The F# Journal just published an article about immutable collections:
"Microsoft introduced Immutable Collections as part of the Base Class Library (BCL) in 2013. Previous articles have compared the list and Set implementations in F# Core with that in the BCL. This article looks at the Map or SortedDictionary collection..."
To read this article and more, subscribe to The F# Journal today!

Saturday, 11 April 2015

F# Core vs BCL Immutable Collections: Sorted Sets

The F# Journal just published an article about immutable collections:
"Microsoft introduced Immutable Collections as part of the Base Class Library (BCL) in 2013. A previous article compared the List implementation in F# Core with that in the BCL. This article looks at the Set or SortedSet collection..."
To read this article and more, subscribe to The F# Journal today!

Friday, 10 April 2015

An EDSL for Porter Stemmer

The F# Journal just published an article about metaprogramming:
"The Porter Stemmer algorithm is a stemming algorithm from natural language processing that tries to compute the stem of a given English word. The algorithm has already been implemented in many different languages including F#. This article takes the different approach of defining a minimal language, an embedded domain specific language, capable of expressing this algorithm and then describing the algorithm declaratively as close to its original definition as possible..."
To read this article and more, subscribe to The F# Journal today!

Thursday, 9 April 2015

Implementing type inference

The F# Journal just published an article about metaprogramming:
"This article walks through the design and implementation of the Damas-Milner type inference algorithm written in F#. This algorithm is the foundation of type inference most modern functional programming languages including SML, OCaml and F#. The algorithm acts upon expressions and types using type schemes, substitutions and type environments to infer the type of a given expression..."
To read this article and more, subscribe to The F# Journal today!

Monday, 6 April 2015

Benchmarking the Set and Map collections

The F# Journal just published an article about benchmarking:
"Hash tables are inherently imperative concrete implementations of the abstract data structures known as dictionaries and sets. Hash tables have been ubiquitous in imperative programming since their rise to fame in the Perl programming language in the 1990s. In contrast, purely functional dictionaries are notoriously slow. Consequently, much effort has been focused on improving the performance of these collections. This article looks at the automated performance test suite we wrote for the F# Set and Map collections..."
To read this article and more, subscribe to The F# Journal today!

Saturday, 4 April 2015

Experiments with value types and purely functional data structures

The F# Journal just published an article about value types:
"This article take a look at how .NET value types can be used to alleviate some of the stress from the garbage collector in the context of purely functional data structures. Purely functional data structures are notoriously allocation intensitive. The creators of the OCaml programming language from which F# is descended reported that an allocation typically occurs every 5 instructions. In most cases, a single insert or update operation can be expected to incur one or more allocations. In the context of metaprogramming, for which the ML family of programming languages were originally designed and implemented, the use of heavily fragmented collections is generally an advantage because the vast majority of collections are empty or very small..."
To read this article and more, subscribe to The F# Journal today!