GithubHelp home page GithubHelp logo

furry-bear's Introduction

NAMES:
----------------------------------------------------------------------

Kenneth Lin
cs61a-kn

Michael Lin Yang
cs61a-ia


WORK SPLIT:
----------------------------------------------------------------------

We never explicitly determined Partner A and Partner B, nor did we
explicitly split the work for any part. We also did a lot of
cross-checking and helping each other write their parts, so we can't
really determine where the work split comes.


BUGS:
----------------------------------------------------------------------

Although our interpreter works for arbitrarily long tail recursions,
it does not work for arbitrariliy long lists of arguments. This is
because the structure of scm_read() lends itself to be recursive for
every argument. Therefore, our interpreter cannot handle more than
~900 arguments, and fewer depending on the recursion
limits. Therefore, the autograder testing will not pass with some of
the stress tests we introduced in our tests.scm file. This is not
necessarily a bug but more a flaw in design that would require major
refactoring to fix.


NOTES:
----------------------------------------------------------------------

* In our tests.scm, we introduced many stress tests that would not
  pass the autograder tests simply because of the number of arguments
  it requires that the reader must read. We have provided a
  tests_nostress.scm for running tests with higher recursion
  limits. Note that this does not mean that our interpreter does not
  handle tail recursion (see BUGS).

* For efficiency, we refactored a lot of for loops using
  self.expr.nth() to use while loops. Some functions may look
  different as a result.

* We defined three new utility functions to simply our code:
  make_single_body(), evaluate_expr_seq_and_set_expr_as_last(), and
  make_list(). The first two are defined in scheme.py, while the last
  is defined in scheme_primitives.py.

* For easier testing, we altered our scheme_test.py to treat all
  memory locations such as 0x23fa6b etc. to be interpreted to same.

* We customized our prompt a bit :)

furry-bear's People

Contributors

linkenneth avatar michaellin avatar

Stargazers

 avatar  avatar

Watchers

James Cloos avatar  avatar

Forkers

michaellin

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.