# Special Operators for Computation Rules

### Introduction

If you've read Clojure Rules 101 and Clojure Rules Next Steps, then you know that some operators perform special functions, and return different kinds of data. This article discusses several operators available in LoanPro that can be used with Computation Rules. These rules allow you to get whole numbers out of text, grab portions of text, and work with special LoanPro variables.

Avoid Non-Clojure Languages

Avoid using interop of languages such as Java when using LoanPro's computation rules.

Do not use functions such as

• Double/valueOf
• Integer/parseInt
• Double/parseDouble

Instead, opt to use Lisp/Clojure specific functions and the operators provided by LoanPro, covered below.

### Text Evaluations

These operators evaluate text.

• v/parse-int can pull a whole number from a string.
• v/parse-float can pull numbers with decimals from a string.
• subs returns a portion of a string.

#### Text to a Whole Number

You can extract a whole number from a string of text using the “v/parse-int” operator. Text is often enclosed in double quotes, and dates are automatically converted to text when needed.

 Clojure Result Explanation (v/parse-int "80") 80 The operator turns the string "80" into just a number, 80. (You can't perform math operations on a string, so this converts a string to a number) (v/parse-int "2.984938") 2 This operator will only return a whole number, so it cuts off anything following a decimal. (v/parse-int "L42-20132") 42 It will look for the first whole number it can, skipping past text and ignoring everything after the number. (v/parse-int "2024-08-09") 2024 If used on a date, it'll only return the year.

#### Text to a Floating Point Number

The LoanPro Computation Rules also allow you to extract floating point numbers from a string of text using the “v/parse-float” operator. The examples used in the section above apply the same here but for floating point numbers, instead of whole numbers.

 Clojure Result Explanation (v/parse-float "80.5") 80.5 The operator turns the string "80.5" into a number.

#### Substring

The Substring operator (subs) evaluates a text operand and returns a smaller portion of it. The substring operator takes two to three operands: The text to use as a base, the starting character (the first character is 0, the second is 1, and so forth), and the ending character (if not provided then it will include everything to the right of the starting character).

Note that the ending character is exclusive; in other words, the result will not include the end character.

 Clojure Result Explanation (subs "2022-02-14" 0 4) 2022 The operator starts at zero and goes four characters deep, then drops the rest. Note that the date will be a string, not a number. (subs "L212-5142b" 5) 5142b It starts after the fifth character and then includes everything that follows. This can be useful for redacting sensitive information, like contact info or account IDs. (v/parse-int (subs “2022-12-23” 4 7)) 12 The substring operator returns a string of '12', and the the v/parse-int operator then converts it into a number.

### Mathematical Evaluations

These operators evaluate numbers.

• max and min return the highest or lowest numbers of a set.
• pos? and neg? tell whether a number is positive or negative.

#### Maximum and Minimum

The maximum (max) operator returns the highest operand given, and the minimum (min) operator returns the lowest. They can take any number of operands.

 Clojure Result Explanation (max 35 192 32 -999 221 100 102 202) 221 221 is the highest number of the bunch. (min 35 192 32 -999 221 100 102 202) -999 -999 is the lowest number.

#### Positive and Negative

The positive (pos?) and negative (neg?) operators look at a number and return either "True" or "False".

 Clojure Result Explanation (pos? 4) True The pos? operator will return True for positive numbers. (neg? -5) True The neg? operator will return True for negative numbers.