Skip to content

Custom Operators

In Filtrera, you can create custom operators by combining filters and functions. This allows you to define operations that suit your specific needs, enhancing the expressiveness and flexibility of your code. This guide will walk you through the process of creating custom operators, using an example to illustrate the steps.

What are Custom Operators?

Custom operators in Filtrera are essentially filters or functions that behave like operators. They allow you to define custom behavior for operations between values, similar to how built-in operators like +, -, and * work.

Creating a Custom Operator

Let’s create a custom operator for addition. We’ll define a filter and a function that together form our custom add operator.

Step 1: Define the Filter

First, we define a filter that takes one argument. This filter will prepare the operation by capturing the left operand.

let add (l) |> (r) => l + r

In this example, add is a filter that takes a left operand l. The filter returns a function that takes a right operand r and performs the addition.

Step 2: Use the Custom Operator

Now, we can use our custom add operator just like a built-in operator.

let result = 1 add 2
from result

In this example, 1 add 2 uses the custom add operator to add 1 and 2, resulting in 3.

Practical Examples

Let’s explore a few more examples to see how custom operators can be created and used for different types of operations.

Example 1: Custom Subtraction Operator

We’ll create a custom operator for subtraction.

let subtract (l) |> (r) => l - r
let result = 10 subtract 4
from result

In this example, 10 subtract 4 uses the custom subtract operator to subtract 4 from 10, resulting in 6.

Example 2: Custom Multiplication Operator

Next, we’ll create a custom operator for multiplication.

let multiply (l) |> (r) => l * r
let result = 3 multiply 5
from result

In this example, 3 multiply 5 uses the custom multiply operator to multiply 3 by 5, resulting in 15.

Example 3: Custom Division Operator

Finally, we’ll create a custom operator for division.

let divide (l) |> (r) => l / r
let result = 20 divide 4
from result

In this example, 20 divide 4 uses the custom divide operator to divide 20 by 4, resulting in 5.

Summary

Creating custom operators in Filtrera is a powerful way to extend the language’s capabilities and tailor it to your needs. By combining filters and functions, you can define custom behavior for operations between values, making your code more expressive and flexible. Whether you need custom arithmetic operations or other specialized behavior, custom operators provide a versatile solution.

By following the steps outlined in this guide, you can start creating your own custom operators to enhance your Filtrera programs.