Research-Oriented Programming

Novum’s data and numerical facilities are designed to support compact analysis scripts.

Data transformation

Use list/string/iterator pipelines for preprocessing:

let cleaned =
    values
        .filter(|x| x != Null)
        .map(|x| float(str(x)))
        .collect()

Use vector and matrix values when numerical operations naturally map to linear algebra.

Statistics

The project contains statistical functionality developed as part of its research-oriented feature set, including descriptive operations and hypothesis-testing utilities. The exact catalog is implementation-driven and should be kept synchronized with the statistics module.

Reproducible scripts

Prefer explicit input paths and configuration rather than depending on the REPL environment:

import process
import fs

let root = process.cwd()?
let input = root.join("data/input.csv")
let text = fs.read(input)?

Why functions are lambdas

Research workflows benefit from passing transformations directly:

column
    .map(|x| transform(x))
    .filter(|x| predicate(x))

This keeps small analytical transformations close to the operation they parameterize.