home Skip Navigation LinksHome > About Us
Training

IntelliFactory was founded in 2004 to provide F# programming and training services, and strategic consulting on adopting functional programming.

We have strong roots in academic research, especially in functional and domain-specific languages (DSLs), extensible multi-language compilers, declarative and formal specification, and string and text processing. Backed by our ever-growing research background we have a wide range of internal development projects, and work with academia in a number of initiatives.

IntelliFactory is one of the first companies to offer functional programming services to the enterprise market with considerable experience in converting and migrating commercial software to F#.

We firmly believe in functional programming and advocate the use of functional and domain-specific languages.

We specialize in the following:

  • F# software development and agile project management
  • Strategic consulting on migrating to F# and tailoring existing development processes
  • F# trainings, from basic to advanced level, from individual to enterprise-wide
  • Research in functional programming and domain-specific languages

If you are interested in learning how we can help your business grow, get in touch with us here.

Functional programming

Functional programming ideas have been around for at least 50 years. Most modern programming languages (C++, C#, Java, etc.) have functional elements; in fact the tendency is to gradually incorporate the well-proven functional ideas and features such as generics (parametric polymorphism), higher-order functions, lazy evaluation into these languages, resulting in mixture of imperative, object-oriented and functional paradigms.

Learn about Functional Programming

See what Anders Heljsberg, the chief architect of C# has to say on functional programming.

Anders Hejlsberg on LINQ and Functional Programming with Charlie Calvert

In this interview Anders Heljsberg explains why LINQ and functional programming will change the way we develop applications. He goes back to prototyping LINQ and how ideas from functional programming helped their team make a leap with the level of abstraction. He talks about lambda expressions, composability using higher-order functions, expression trees, meta programming, pure functional programming and concurrency. Anders: "By incorporating (some of these) functional concepts it actually becomes possible to create higher level programming models."

Nevertheless, most languages in heavy use today (Java, C++, C#, VB) are not functional because they lack the proper foundation, either because their absorption of functional ideas is not yet complete or because these ideas can not be fully or easily embedded. A good example is the lack of true polymorphism in C++ or straightforward higher-order functions in Java.

These shortcomings cause significant loss of productivity and come at a high cost: modern non-functional programs are more lengthy, more difficult to understand, and most importantly more costly to develop and maintain. Savings when functional languages are used are in the range of 20-80% in our experience which is backed by the numerous studies and research in the effectiveness and expressiveness of various programming languages.

Domain-specific languages (DSLs)

The use of DSLs not only gives a concise syntax to describe the problem at hand in a less error-prone manner but also promotes the understanding of the underlying problem domain. Why do we have to deal with pointers, for loops, or static methods when we are writing a program that computes say the shortest path between two cities, C1 and C2? Consider the following instead:

   find Path in G(V, E) where
      first(Path)=C1 and last(Path)=C2
      and Path is valid in G(V, E)
      and cost(Path) is minimized

The benefits of DSLs are immense: programs in DSLs are much shorter and quicker to develop (gains of several fold), which improves understanding and maintainability dramatically. On the other hand, there is a significant one-time cost of inital development of the DSL.

At IntelliFactory we are experts at functional programming and DSL development. Contact us to see how we can help your company benefit.