Skip to content

Ph4ng0t/bindlang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bindlang


> a functional language with some experimental orignal feature

FEATURE

  • dynamic strong type
  • mark sweep garbage collection
  • clousure
  • curry
  • serial call
  • procedure compose

  • perforation closure

DATA TYPE

  • number
  • string
  • tuple :mutable scalable leanear table,easy to iteration
  • list :immutable binary tree,easy to recurse

GRAMMAR

  • blank ::= re”\s”;
  • id ::= re”[a-zA-Z@_$][a-zA-Z@_$0-9]*”;
  • list ::= {“’”}”[“[expr {blank expr}]”]”
  • tupple ::= {“’”}”<”[expr {blank expr}]”>”

//the “’” can protect expressions in above twe container not to be evaluated.

  • expr ::= define|call|atom|func|id;
  • define ::= id “=” expr;

//immutable,define or changed to new value

  • set ::= call “=” expr;

//mutable,directly change what call returned

  • call ::= callee “(” [ expr {blank expr} ] “)”;
  • dot ::= object “.” callee

//pass object as single argument to right callee As an syntax sugar for passing right style

  • callee ::= id|call
  • object ::= callee|dot
  • func ::= “" [ id {blank id }” ] “->” expr;
  • atom ::= number | string | list | tupple;

About

a functional language with some experimental features

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published