aboutsummaryrefslogtreecommitdiff
path: root/projects/09/List
diff options
context:
space:
mode:
Diffstat (limited to 'projects/09/List')
-rw-r--r--projects/09/List/List.jack46
-rw-r--r--projects/09/List/Main.jack17
2 files changed, 0 insertions, 63 deletions
diff --git a/projects/09/List/List.jack b/projects/09/List/List.jack
deleted file mode 100644
index c62fe28..0000000
--- a/projects/09/List/List.jack
+++ /dev/null
@@ -1,46 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/09/List/List.jack
-
-/** Represents a linked list of integers. */
-class List {
- field int data; // a list consists of a data field,
- field List next; // followed by a list
-
- /* Creates a List. */
- constructor List new(int car, List cdr) {
- let data = car; // the identifiers car and cdr are used in
- let next = cdr; // memory of the Lisp programming language
- return this;
- }
-
- /** Accessors. */
- method int getData() { return data; }
- method int getNext() { return next; }
-
- /** Prints this list. */
- method void print() {
- var List current; // initializes current to the first item
- let current = this; // of this list
- while (~(current = null)) {
- do Output.printInt(current.getData());
- do Output.printChar(32); // prints a space
- let current = current.getNext();
- }
- return;
- }
-
- /** Disposes this List by recursively disposing its tail. */
- method void dispose() {
- if (~(next = null)) {
- do next.dispose();
- }
- // Uses an OS routine to recycle this object.
- do Memory.deAlloc(this);
- return;
- }
-
- // More list processing methods can come here.
-
-}
diff --git a/projects/09/List/Main.jack b/projects/09/List/Main.jack
deleted file mode 100644
index 824eb6f..0000000
--- a/projects/09/List/Main.jack
+++ /dev/null
@@ -1,17 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/09/List/Main.jack
-
-/** Demonstrates the use of the List abstraction. */
-class Main {
- function void main() {
- // Creates and uses the list (2,3,5).
- var List v;
- let v = List.new(5,null);
- let v = List.new(2,List.new(3,v));
- do v.print(); // prints 2 3 5
- do v.dispose(); // disposes the list
- return;
- }
-}