InfoQ Homepage Functional Programming Content on InfoQ
-
Largest Transport Provider in Norway Rewrites Its Website with 83,000 Lines of Elm
Vy.no, the largest transport provider in Norway, rewrote its website in the compile-to-JavaScript Elm language. Robin Heggelund Hansen and Kjetil Valle presented in a recent article the three-year journey by which Vy gradually switched to Elm for the non-static parts of its website.
-
F# 4.6 Introduces Anonymous Record Types
The next release of F#, F# 4.6, will most notably bring anonymous record types and structs to the language, along with a few additions to the standard library.
-
Previewing Swift 5 Result Type
One of the most awaited proposals for Swift 5, Result, has already landed into the language. The Result type forces the programmer to explicitly handle the failure and success cases before they can gain access to the actual value. Let’s have a look at how it is implemented, how you can use it, and why it was needed.
-
Haskell Adoption and User Satisfaction Growing
The 2018 Haskell User Survey shows very high satisfaction with Haskell’s security, quality, reliability, maintainability, and advanced capabilities, writes FP Complete’s CEO Aaron Contorer. InfoQ has taken the chance to speak with him about Haskell’s current and future landscape.
-
F# 2017 Retrospective
During 2017 F# reached version 4.1 and grew its user community, mostly in coincidence with the release of .NET Core 2.0, while getting stronger tooling and wider conference presence, writes Microsoft program manager Phillip Carter.
-
Refinement Types and Dependent Functions Stable in Racket 6.11
Racket 6.11 brings refinement types and dependent function types to its Typed Racket variant.
-
Dependent-Types Language Idris Reaches 1.0
A few months after reaching what could be considered alpha stage, Idris 1.0 is out, writes Idris creator Edwin Brady, Lecturer in Computer Science at the University of St Andrews, UK.
-
Idris Getting Close to Version 1.0
Dependent types-based language Idris will soon reach version 0.99, which can be viewed as an alpha release of 1.0, according to the Idris team. Idris 1.0 is expected sometime around February 2017.
-
The Road to Javaslang 3.0
Javaslang, an open-source functional library that provides persistent data types and functional control structures for Java 8 and beyond, published a roadmap for a major release version 3.0 that promises significant changes to the library to remove unnecessary and deprecated features.
-
Racket 6.7 Brings Android App Support, Improved REPL, and More
PLT Design has announced a new version of Racket; its Scheme-like general purpose, multi-paradigm programming language Racket 6.7 introduces support for building graphical applications on Android, improvements to the REPL and to the package manager, and extended Typed Racked.
-
Don Syme Presents F# Design Principles at .Net Fringe
Don Syme, creator of F#, presented at .Net Fringe 2016 an assessment of the current status of F#. He also commented on the duality that exists in F#, a functional language created on a runtime built for object oriented languages.
-
Open-Source OCaml to JavaScript Compiler BuckleScript Hits 1.0
BuckleScript 1.0 brings almost full compatibility with OCaml features and an improved FFI with the aim of avoiding writing unsafe JavaScript stubs. InfoQ has spoken with Bloomberg’s Hongbo Zhang, BuckleScript creator at Bloomberg.
-
Retrospective: Haskell in Production
Haskell might be “the closest thing to a secret weapon” when building server-side software, writes Better co-founder Carl Baatz, summarizing their four-year journey using Haskell in production.
-
Elixir 1.3 Brings New Language Features, APIs, and Improved Tooling
Elixir 1.3, recently announced by José Valim, deprecates imperative assignments and adds new types and accessors, improves its Mix build tool and the ExUnit unit testing framework.
-
Clojure.spec is a New Contract System for Clojure
Clojure has a new core library, clojure.spec, that aims to provide a standard and integrated system for the specification and testing of data and functions. Besides making it possible to automatically validate Clojure code, the new specification system can be used for a number of tasks such as generative testing, error reporting, and destructuring.