Skip to content

Latest commit

 

History

History
46 lines (42 loc) · 1.97 KB

TODO.md

File metadata and controls

46 lines (42 loc) · 1.97 KB

##TODO list

1/3/2016 Goal: End game

  • Figure out recursive functions (evalArg? why isn't fold working")
  • Tests for lexical scoping
  • Figure out stdlib integration into exec
  • Write standard library chapter
  • Write testing chapter
  • Add functions for io manipulation (readFile, execute file, writeToFile, etc)
  • Write IO chapter

11/11/2016 (Goal: Write tutorial chapters 00 to 04)

  • Make sure resources from ./sources/* are added to introduction
  • Balance intro/overview material between chapters
  • Figure out how Parser is constructing types around m_parens
  • Clean up Parser, remove uneeded variables decide if m_* or Tok.* should be used.
  • Replace String with Text in all LispError
  • Make LispError diversity and usage consistent throughout project
  • Outline Eval chapters
  • Write Eval Chapter
  • check lambda lexical scoping (in both EnvCtx in Lambda and partial applyLambda)
  • Outline Prim chapters
  • Write Prim Chapter
  • Write Error Chapter
  • Integrate test framework into narrative to demonstrate features of presented code.
  • Find an alternative to the ExceptT error IO a

11/1/2016: Goal: Finish Code for initial release (chapters 0-4, enough code for REPL to work & turing completeness) now that the parser is out of the way, we can focus on some fun stuff:
get the following to work:

  • eval w/ two args for: + - * ++ cons cadr quote
  • eval w/ multiple args (fold version?)
  • boolean,#t,#f,equals,not equals, if statement
  • nested statements
  • let statement
  • lambda expressions
  • begin function
  • eval body to work when 2) let/lambda, support define statements
  • io on files(read/write), read file to String, write string to file
  • eval body to work when 1) reading files
  • Test read/parse/eval files as script
  • evalBody like define
  • write :: LispVal -> T.Text
  • read :: T.Text -> LispVal