# Musings of an Accidental Computing Scientist

## Writing faster Raku code

Sometimes you want your Raku code to be faster. What does it take?

## Reconstructing Raku's Junctions

A reconstruction of Raku's junctions as an algebraic data with higher-order functions.

## The strange case of the greedy junction

An illustration that Raku's junctions are greedy by design, and a proposal.

## A universal interpreter

The Böhm-Berarducci encoding of a type can be considered as a universal interpreter. We illustrate this in Raku with an evaluator and pretty printer.

## Encoding types as functions in Raku

The Böhm-Berarducci encoding is a way to express an algebraic data type as a function type. We show how to do this in Raku using roles.

## Function types

A brief introduction into function types, with a way to implement them in Raku and examples in many languages.

## Cleaner code with functional programming

An introduction to some powerful functional programming techniques in Raku and Python.

## Everything is a function

Although it might seem that a language like Haskell has a lot of different objects and constructs, they can all be reduced to functions.

## List-based parser combinators in Haskell and Raku

This is a follow-on of my article on algebraic data types, with list-based parser combinators as a practical application.

## Roles as Algebraic Data Types in Raku

Algebraic data types are great for building complex data structures, and easy to implement in Raku using roles.

## The Winds of Kyoto

A very short story for the Fifth Annual Kyoto Writing Competition.

## Writing faster Perl code

Sometimes your pure Perl code needs to be as fast as possible. What does it take?

## Why Europe needs hurricane contingency planning

Hurricanes will become common in Europe in the next few decades. I discuss the evidence, the impact and the need for proper contingency planning.

## Hacking the Pleroma: Elixir, Phoenix and a bit of ActivityPub

A brief guide into hacking Pleroma, a federated microblogging server software.

## A little maths puzzle in two parts

Of which the outcome is a way to construct a regular pentagon using compass and ruler.

## A strategy for debugging

For a long time it has been my contention that for a developer, more that programming, debugging should be treated as a core skill.

## Imagine we had better weather forecasts

Current weather forecasts are at the same time very advanced and yet not good enough. Earlier and more accurate warnings could help to limit the damage of su...