rust_dynamic/
applicative.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
use crate::value::{Applicative, Value};
use crate::types::*;

impl Applicative {
    pub fn bind(&mut self, f: AppFn) -> Self {
        self.f = f;
        return self.clone();
    }
    pub fn apply(&self, value: Value) -> Value {
        let res = value.dup().unwrap().regen_id();
        return (self.f)(res);
    }
}