locrian 0.2.2

A simple embeddable functional programming language.
Documentation
use std::{
    env,
    error::Error,
    fs,
    io::{self, stdin},
};

use locrian::{eval_str, io::IO, stdlib::STDLIB};

fn main() -> Result<(), Box<dyn Error>> {
    let args = env::args().collect::<Vec<_>>();

    let mut code = if args.len() > 1 {
        fs::read_to_string(args.get(1).unwrap())?
    } else {
        io::read_to_string(stdin())?
    };

    if code.starts_with("#!") {
        code = code[code.find("\n").unwrap()..].to_string();
    }

    let res = eval_str(&code, STDLIB.merge(IO.clone()))?;

    println!("{}", res);

    Ok(())
}