CommunityNews

CommunityNews

Preface - an opinionated functional programming library for OCaml

Preface

Preface is an opinionated library designed to facilitate the handling of recurring functional programming idioms in OCaml. Many of the design decisions were made in an attempt to calibrate, as best as possible, to the OCaml language. Trying to get the most out of the module language. The name “preface” is a nod to “Prelude”.

When learning functional programming, one is often confronted with constructs derived (or not) from category theory. Languages such as Haskell offer very complete libraries to use them, and thus, facilitate their learning. In OCaml, it often happens that these abstractions are buried in the heart of certain libraries/projects (Lwt, Cmdliner,Bonsai, Dune etc.). This is why one of the objectives of Preface is to propose tools for concretising these abstractions, at least as a pedagogical tool.

Is Preface useful

Since OCaml allows for efficient imperative programming, Preface is probably not really useful for building software. However, we (the maintainers) think that Preface can be useful for a few things:

  • technical experimentation with abstractions (especially those from the Haskell world) that allow programming in a fun style.
  • As an educational tool. Many teaching aids generally only offer the minimal interfaces to these abstractions. Preface tries to be as complete as possible.
  • It was a lot of fun to make. The last point is obviously the lightest but building Preface was really fun! So even if some people won’t see the point… we had fun making it!..

Read in full here:

This thread was posted by one of our members via one of our news source trackers.

Where Next?

Popular Backend topics Top

First poster: bot
Release Introducing rust-gpu v0.1 :dragon: · EmbarkStudios/rust-gpu. Today, we’re releasing a very early version of rust-gpu - a new pro...
New
CommunityNews
Runtime and compiler performance is out of this world. New features include better error handling, a more powerful API, cross-compilation...
New
First poster: bot
A set of utility functions for iterators, functions, and dictionaries. See the PyToolz documentation at https://toolz.readthedocs.io ...
New
First poster: bot
Today’s the day: We’re very proud to announce Trussed®, an open source framework for modern cryptographic applications, which powers the ...
New
First poster: Carter
https://makepad.dev/ This thread was posted by one of our members via one of our news source trackers.
New
mudasobwa
Tarearbol library that eases the dealing with tasks got a massive update. use Tarearbol.Pool to create worker pools with no boilerplat...
New
First poster: bot
Simple command line tool for text to image generation using OpenAI’s CLIP and Siren (Implicit neural representation network) - lucidrains...
New
First poster: bot
Check if an email address exists without sending any email, written in Rust.
New
First poster: bot
YOCaml is a static site generator, mostly written in OCaml. The project was started to offer some rather naive examples of how to use the...
New
kirkjkrauss
I’m not the first developer to code a method dedicated to matching the classic ‘*’ and ‘?’ wildcards in Rust.  But I may be the first to...
New

Other popular topics Top

Devtalk
Hello Devtalk World! Please let us know a little about who you are and where you’re from :nerd_face:
New
Exadra37
Please tell us what is your preferred monitor setup for programming(not gaming) and why you have chosen it. Does your monitor have eye p...
New
New
AstonJ
Curious to know which languages and frameworks you’re all thinking about learning next :upside_down_face: Perhaps if there’s enough peop...
New
AstonJ
Do the test and post your score :nerd_face: :keyboard: If possible, please add info such as the keyboard you’re using, the layout (Qw...
New
New
PragmaticBookshelf
Use WebRTC to build web applications that stream media and data in real time directly from one user to another, all in the browser. ...
New
First poster: AstonJ
Jan | Rethink the Computer. Jan turns your computer into an AI machine by running LLMs locally on your computer. It’s a privacy-focus, l...
New
CommunityNews
A Brief Review of the Minisforum V3 AMD Tablet. Update: I have created an awesome-minisforum-v3 GitHub repository to list information fo...
New
Fl4m3Ph03n1x
Background Lately I am in a quest to find a good quality TTS ai generation tool to run locally in order to create audio for some videos I...
New