ichigo-lang

write a little simply typed functional language to practice Rust

APACHE-2.0 License

Stars
15
Committers
1

Ichigo Lang

to commemorate those fucking times

Intro

  • It's trivial, just a toy, used to familiarize with Rust
  • NO DEPENDENT TYPE

Quick Start

cargo run -- -i example/hello.ichigo

TODO List

  • core task
    • parser
    • type checker
    • type inference
    • evaluator
  • peripheral task
    • REPL
    • pretty printer

Language Feature

  • Algebraic data type
  • Lambda calculus
  • Pattern matching
  • Unicode symbol

Quick View

 =  {
    0    : 
    1+   :   
}

+ =  x :  .  { 
    1+ y . 1+ (+ x y)
    0    . x
}

 =  {
      : 
    ++ :     
}

take =  {
    1+ n .  {
                   . 
            ++ x xs . ++ x (take n xs)
    }
    0    .  x . 
}